Function at 0x4112b0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x134
push ebx
push esi
push edi
lea esi, [ebp - 0x130]
call fcn.00418cb0
cmp byte [ebp + 0xc], 0
mov edx, esi
sete al
movzx ecx, al
push ecx
push edx
call fcn.00418ed0
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x128]
test eax, eax
jg 0x4114dc
mov ebx, dword [sym.imp.Ngs3.dll_public:_void___thiscall_C2bString::constructor_void_]
lea ecx, [ebp - 4]
call ebx
push 0
lea ecx, [ebp - 0x20]
push ecx
push 0x8005
call fcn.0041d910
mov edi, eax
add esp, 0xc
test edi, edi
je 0x411336
mov edx, dword [ebp - 0x20]
push edi
push edx
push edi
lea ecx, [ebp - 4]
call dword [sym.imp.Ngs3.dll_public:_wchar_t____thiscall_C2bString::GetBuffer_int_]
push eax
call dword [sym.imp.MSVCRT.dll_wcsncpy]
add esp, 0xc
push edi
mov edi, dword [sym.imp.Ngs3.dll_public:_void___thiscall_C2bString::ReleaseBuffer_int_]
lea ecx, [ebp - 4]
call edi
jmp 0x41133c
mov edi, dword [sym.imp.Ngs3.dll_public:_void___thiscall_C2bString::ReleaseBuffer_int_]
lea ecx, [ebp - 8]
call ebx
push 0
lea eax, [ebp - 0x18]
push eax
push 0xa8
call fcn.0041d910
mov esi, eax
add esp, 0xc
test esi, esi
je 0x411379
mov ecx, dword [ebp - 0x18]
push esi
push ecx
push esi
lea ecx, [ebp - 8]
call dword [sym.imp.Ngs3.dll_public:_wchar_t____thiscall_C2bString::GetBuffer_int_]
push eax
call dword [sym.imp.MSVCRT.dll_wcsncpy]
add esp, 0xc
push esi
lea ecx, [ebp - 8]
call edi
lea ecx, [ebp + 0xc]
call ebx
push 0x4202ac
lea ecx, [ebp - 8]
call dword [0x4253c8]
push 0xffffffffffffffff
push 1
lea ecx, [ebp - 4]
call dword [sym.imp.Ngs3.dll_public:_class_C2bString_const____thiscall_C2bString::Trim_int__int_]
test byte [ebp - 0x28], 2
je 0x411465
lea ecx, [ebp - 0xc]
call ebx
push 0
lea edx, [ebp - 0x10]
push edx
push 0xa9
call fcn.0041d910
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4113e0
mov eax, dword [ebp - 0x10]
push esi
push eax
push esi
lea ecx, [ebp - 0xc]
call dword [sym.imp.Ngs3.dll_public:_wchar_t____thiscall_C2bString::GetBuffer_int_]
push eax
call dword [sym.imp.MSVCRT.dll_wcsncpy]
add esp, 0xc
push esi
lea ecx, [ebp - 0xc]
call edi
mov esi, dword [reloc.Ngs3.dll___4C2bString__QAEABV0_ABV0__Z]
lea ecx, [ebp - 0xc]
push ecx
lea ecx, [ebp + 0xc]
call esi
mov ebx, dword [sym.imp.Ngs3.dll_public:_void___thiscall_C2bString::destructor_void_]
lea ecx, [ebp - 0xc]
call ebx
lea edx, [ebp + 0xc]
push edx
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 8]
call dword [sym.imp.Ngs3.dll_public:_class_C2bString___thiscall_C2bString::operator_class_C2bString_const__]
push eax
lea ecx, [ebp + 0xc]
call esi
lea ecx, [ebp - 0x24]
call ebx
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
push 0x44
push ecx
push edx
push esi
call dword [sym.imp.USER32.dll_MessageBoxW]
sub eax, 6
je 0x411455
dec eax
jne 0x41146e
lea ecx, [ebp + 0xc]
call ebx
lea ecx, [ebp - 8]
call ebx
lea ecx, [ebp - 4]
call ebx
lea edi, [ebp - 0x130]
call fcn.004115f0
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0
lea eax, [ebp - 0x130]
push eax
call fcn.00418ed0
jmp 0x41146e
mov esi, dword [ebp + 8]
mov ebx, dword [sym.imp.Ngs3.dll_public:_void___thiscall_C2bString::destructor_void_]
mov ecx, dword [ebp - 0x128]
test ecx, ecx
jg 0x4114cb
push 0x8c
lea edi, [ebp - 0x14]
call fcn.0041d6c0
mov edi, dword [reloc.Ngs3.dll___4C2bString__QAEABV0_ABV0__Z]
add esp, 4
push eax
lea ecx, [ebp + 0xc]
call edi
lea ecx, [ebp - 0x14]
call ebx
lea edx, [ebp + 0xc]
push edx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 8]
call dword [sym.imp.Ngs3.dll_public:_class_C2bString___thiscall_C2bString::operator_class_C2bString_const__]
push eax
lea ecx, [ebp + 0xc]
call edi
lea ecx, [ebp - 0x1c]
call ebx
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 0xc]
push 0x40
push ecx
push edx
push esi
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x411432
lea ecx, [ebp + 0xc]
call ebx
lea ecx, [ebp - 8]
call ebx
lea ecx, [ebp - 4]
call ebx
jmp 0x4114e5
mov esi, dword [ebp + 8]
mov ebx, dword [sym.imp.Ngs3.dll_public:_void___thiscall_C2bString::destructor_void_]
lea eax, [ebp - 0x130]
push eax
call fcn.004194a0
mov eax, dword [0x4257fc]
test eax, eax
je 0x411503
cmp dword [eax + 4], esi
jne 0x411503
xor edi, edi
jmp 0x411518
push 0
push 3
push 0xbd1
push esi
mov edi, 1
call dword [sym.imp.USER32.dll_SendMessageW]
xor eax, eax
lea ecx, [ebp - 0x130]
mov dword [ebp - 0x48], ecx
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x58], 0x420220
mov dword [ebp - 0x54], 0x8f
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x5c], 0x42074c
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
call dword [sym.imp.Ngs3.dll_public:_void___thiscall_C2bString::constructor_void_]
mov edx, dword [ebp - 0x48]
mov eax, dword [edx + 8]
lea edx, [ebp - 0x60]
push edx
push 0
test eax, eax
mov eax, dword [ebp - 0x48]
push eax
push 0x40ad30
push 0
sets cl
push 0
mov byte [ebp - 0x30], cl
call dword [sym.imp.KERNEL32.dll_CreateThread]
push 0x190
push eax
mov dword [ebp - 0x3c], eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x411595
mov ecx, dword [ebp - 0x48]
mov edx, dword [ecx + 0xc]
test edx, edx
setne al
inc eax
jmp 0x4115a4
push esi
lea ebx, [ebp - 0x5c]
call fcn.0041bb40
mov ebx, dword [sym.imp.Ngs3.dll_public:_void___thiscall_C2bString::destructor_void_]
test edi, edi
je 0x4115bf
xor ecx, ecx
cmp eax, 1
sete cl
push 0
push ecx
push 0xbd1
push esi
call dword [sym.imp.USER32.dll_SendMessageW]
lea ecx, [ebp - 0x2c]
call ebx
mov edx, dword [ebp - 0x3c]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea edi, [ebp - 0x130]
mov dword [ebp - 0x5c], 0x420458
call fcn.004115f0
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret