Function at 0x43d460
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x588b89
mov eax, dword fs:[0]
push eax
sub esp, 0x668
mov eax, dword [0x5e6990]
xor eax, esp
mov dword [esp + 0x660], eax
push ebx
push esi
push edi
mov eax, dword [0x5e6990]
xor eax, esp
push eax
lea eax, [esp + 0x678]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x14], ebx
call fcn.0046e2ee
mov eax, dword [eax + 4]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x74]
call eax
mov dword [esp + 0x58], eax
call fcn.0045c778
xor ecx, ecx
xor esi, esi
cmp eax, esi
setne cl
cmp ecx, esi
jne 0x43d4d7
push 0x80004005
call fcn.00402e90
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x30], eax
push 0x7f
lea ecx, [esp + 0x471]
push esi
mov dword [esp + 0x688], esi
push ecx
mov byte [esp + 0x478], 0
call fcn.0055e260
add esp, 0xc
push 0xff
lea edx, [esp + 0x371]
push esi
push edx
mov byte [esp + 0x378], 0
call fcn.0055e260
add esp, 0xc
push 0xff
lea eax, [esp + 0x4f1]
push esi
push eax
mov byte [esp + 0x4f8], 0
call fcn.0055e260
xor eax, eax
add esp, 0xc
mov byte [esp + 0x33c], 0
mov dword [esp + 0x33d], eax
mov dword [esp + 0x341], eax
mov dword [esp + 0x345], eax
mov word [esp + 0x349], ax
mov byte [esp + 0x34b], al
mov byte [esp + 0x32c], al
mov dword [esp + 0x32d], eax
mov dword [esp + 0x331], eax
mov dword [esp + 0x335], eax
mov word [esp + 0x339], ax
mov byte [esp + 0x33b], al
call fcn.0045c778
xor ecx, ecx
cmp eax, esi
setne cl
cmp ecx, esi
jne 0x43d5b8
push 0x80004005
call fcn.00402e90
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x3c], eax
mov byte [esp + 0x680], 1
xor eax, eax
mov byte [esp + 0x34c], 0
mov dword [esp + 0x34d], eax
mov dword [esp + 0x351], eax
mov dword [esp + 0x355], eax
mov word [esp + 0x359], ax
mov byte [esp + 0x35b], al
call fcn.0045c778
xor ecx, ecx
cmp eax, esi
setne cl
cmp ecx, esi
jne 0x43d618
push 0x80004005
call fcn.00402e90
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
mov byte [esp + 0x680], 2
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], esi
call fcn.0045c778
xor ecx, ecx
cmp eax, esi
setne cl
cmp ecx, esi
jne 0x43d652
push 0x80004005
call fcn.00402e90
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x28], eax
mov byte [esp + 0x680], 3
call fcn.0045c778
xor ecx, ecx
cmp eax, esi
setne cl
cmp ecx, esi
jne 0x43d684
push 0x80004005
call fcn.00402e90
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov byte [esp + 0x680], 4
mov dword [ebx + 0xf8], esi
call fcn.0045c778
xor ecx, ecx
cmp eax, esi
setne cl
cmp ecx, esi
jne 0x43d6bc
push 0x80004005
call fcn.00402e90
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
mov byte [esp + 0x680], 5
call fcn.0045c778
xor ecx, ecx
cmp eax, esi
setne cl
cmp ecx, esi
jne 0x43d6ee
push 0x80004005
call fcn.00402e90
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x38], edi
mov byte [esp + 0x680], 6
cmp dword [ebx + 0x144], 1
jne 0x43d86b
mov eax, dword [ebx + 0x110]
push ecx
sub eax, 0x10
mov dword [esp + 0x14], esp
mov esi, esp
push eax
call fcn.00402b00
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.00405580
add esp, 4
push eax
mov ecx, ebx
mov dword [esp + 0x74], edx
call fcn.00440050
test eax, eax
jne 0x43d86b
mov byte [esp + 0x680], 5
lea eax, [edi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43d771
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x680], 4
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43d799
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x680], 3
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43d7c1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x680], 2
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43d7e9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x680], 1
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43d811
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x680], 0
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43d839
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x680], 0xffffffff
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43d864
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
jmp 0x43f44d
mov ecx, dword [esp + 0x58]
xor eax, eax
add ecx, 0xac
lea esi, [ebx + 0x110]
mov dword [esp + 0x10], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x4c], esi
cmp dword [esi + 0x34], 1
jne 0x43d95d
cmp dword [ebx + 0x148], 0
jne 0x43d8a5
cmp dword [ebx + 0x14c], 0
je 0x43d8b9
inc eax
push eax
lea edx, [esp + 0x1c]
push str.USER_d
push edx
call fcn.00403be0
add esp, 0xc
mov esi, dword [esi]
push ecx
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
mov dword [esp + 0x24], esp
mov ebx, esp
call edx
cmp dword [esi - 4], 0
lea ecx, [esi - 4]
jl 0x43d8e8
cmp eax, dword [esi - 0x10]
jne 0x43d8e8
lea edi, [esi - 0x10]
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x43d919
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x43d9a4
mov eax, dword [esi - 0xc]
mov dword [edi + 4], eax
mov eax, dword [esi - 0xc]
inc eax
push eax
push esi
push eax
lea ecx, [edi + 0x10]
push ecx
call fcn.0055a75d
add esp, 0x10
add edi, 0x10
mov dword [ebx], edi
call fcn.00405580
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x38]
mov ecx, dword [edx]
mov edx, dword [esp + 0x18]
mov esi, dword [edx + 0x184]
add esi, 0x20000
shl esi, 0xa
add eax, ecx
add esp, 4
cmp eax, esi
ja 0x43d9a9
test ecx, ecx
je 0x43d9a9
add dword [edx + 0xf8], ecx
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x4c]
mov ebx, edx
add dword [esp + 0x34], 0x18
inc eax
add esi, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0x4c], esi
cmp eax, 3
jl 0x43d889
mov ecx, dword [ebx + 0xf8]
shr ecx, 7
add ecx, 2
mov dword [ebx + 0xf8], ecx
call fcn.0046cf3f
test eax, eax
je 0x43da93
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x74]
call eax
jmp 0x43da95
call fcn.00402c50
mov ebx, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push 0xdc
xor edi, edi
push edi
push edi
push 0xffffffffffffffff
push str._BIN
push edi
push edi
call ebx
mov esi, eax
test esi, esi
jle 0x43da06
xor ecx, ecx
lea eax, [esi + 1]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0045c711
mov edi, eax
add esp, 4
lea eax, [esi + esi + 2]
push eax
push 0
push edi
call fcn.0055e260
add esp, 0xc
push esi
push edi
push 0xffffffffffffffff
push str._BIN
push 0
push 0
call ebx
push edi
call dword [sym.imp.LanguageLib.dll_Ordinal_1]
add esp, 4
xor esi, esi
mov dword [esp + 0x14], eax
test eax, eax
je 0x43da60
push esi
push esi
push esi
push esi
push 0xffffffffffffffff
push eax
push esi
push esi
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov edi, eax
test edi, edi
jle 0x43da60
lea ebx, [edi + 1]
push ebx
call fcn.0045c711
add esp, 4
push ebx
mov esi, eax
push 0
push esi
call fcn.0055e260
mov ecx, dword [esp + 0x20]
add esp, 0xc
push 0
push 0
push edi
push esi
push 0xffffffffffffffff
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push ecx
mov edx, esp
mov dword [esp + 0x18], esp
push esi
lea eax, [esp + 0x24]
push eax
push edx
call fcn.0040b980
mov esi, dword [esp + 0x28]
add esp, 0xc
call fcn.0043f7c0
mov byte [esp + 0x680], 5
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
jmp 0x43d758
xor eax, eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0xf8]
mov eax, dword [eax + 0x20]
push 0
push edx
push 0xbd0
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
xor ebx, ebx
mov dword [esp + 0x50], ebx
jmp 0x43dac0
mov ecx, dword [esp + 0x14]
cmp dword [ecx + ebx*4 + 0x144], 0
je 0x43ee62
mov esi, ecx
cmp dword [esi + 0x148], 0
jne 0x43dae6
cmp dword [esi + 0x14c], 0
je 0x43dafc
lea edx, [ebx + 1]
push edx
lea eax, [esp + 0x1c]
push str.USER_d
push eax
call fcn.00403be0
add esp, 0xc
cmp dword [esi + ebx*4 + 0x15c], 1
jne 0x43dc7b
mov ebx, dword [esi + ebx*4 + 0x150]
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x340]
push edx
push ecx
mov ecx, dword [ebx - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
mov dword [esp + 0x1c], esp
mov dword [esp + 0x1c], esp
call edx
cmp dword [ebx - 4], 0
lea ecx, [ebx - 4]
jl 0x43db4d
cmp eax, dword [ebx - 0x10]
jne 0x43db4d
lea edi, [ebx - 0x10]
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x43db7e
mov ecx, dword [ebx - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x43d9a4
mov eax, dword [ebx - 0xc]
mov dword [edi + 4], eax
mov eax, dword [ebx - 0xc]
inc eax
push eax
push ebx
push eax
lea ecx, [edi + 0x10]
push ecx
call fcn.0055a75d
add esp, 0x10
mov edx, dword [esp + 0x1c]
add edi, 0x10
mov dword [edx], edi
call fcn.004052b0
mov ecx, dword [0x5b7714]
mov eax, dword [0x5b7710]
add esp, 0xc
push 0
push 8
lea edx, [esp + 0x374]
push edx
mov dword [esp + 0x37c], ecx
push esi
lea edx, [esp + 0x30]
lea ecx, [esp + 0x4fc]
mov dword [esp + 0x37c], eax
mov dword [esp + 0x30], 0x16
call fcn.0043c370
test al, al
je 0x43ee8b
mov ecx, dword [esp + 0x4f4]
mov eax, dword [esp + 0x4f0]
mov edx, dword [esp + 0x4f8]
mov dword [esp + 0x330], ecx
mov dword [esp + 0x32c], eax
mov eax, dword [esp + 0x4fc]
lea ecx, [esp + 0x33c]
push ecx
lea ebx, [esp + 0x78]
mov dword [esp + 0x338], edx
mov dword [esp + 0x33c], eax
call fcn.00403df0
lea edx, [esp + 0x32c]
push edx
mov edi, ebx
call fcn.00404320
push 0x100
lea eax, [esp + 0x370]
push 0
push eax
call fcn.0055e260
mov ecx, dword [esp + 0x338]
mov edx, dword [esp + 0x33c]
mov eax, dword [esp + 0x340]
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x380], ecx
mov ecx, dword [esp + 0x344]
add esp, 0xc
mov dword [esp + 0x378], edx
mov dword [esp + 0x380], ecx
jmp 0x43dc92
xor eax, eax
mov dword [esp + 0x374], eax
mov dword [esp + 0x378], eax
mov dword [esp + 0x380], eax
mov edx, dword [esp + 0x58]
mov dword [esp + 0x37c], eax
mov eax, dword [edx + 0x98]
test eax, eax
je 0x43dcc6
cmp eax, 1
je 0x43dcc6
cmp eax, 2
je 0x43dcbb
cmp eax, 3
je 0x43dcbb
cmp eax, 4
jne 0x43dccf
mov eax, esi
mov dword [eax + 0x7c], 0x200
jmp 0x43dccf
mov ecx, esi
mov dword [ecx + 0x7c], 0x800
mov edx, esi
cmp dword [edx + 0x180], 2
je 0x43e0f8
push 0
xor edi, edi
push edi
push edi
push 0xffffffffffffffff
push 0x5bc824
push edi
push edi
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov esi, eax
test esi, esi
jle 0x43dd3a
xor ecx, ecx
lea eax, [esi + 1]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0045c711
mov edi, eax
add esp, 4
lea eax, [esi + esi + 2]
push eax
push 0
push edi
call fcn.0055e260
add esp, 0xc
push esi
push edi
push 0xffffffffffffffff
push 0x5bc824
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push edi
call dword [sym.imp.LanguageLib.dll_Ordinal_1]
add esp, 4
xor esi, esi
mov dword [esp + 0x14], eax
test eax, eax
je 0x43dd99
push esi
push esi
push esi
push esi
push 0xffffffffffffffff
mov ecx, eax
push ecx
push esi
push esi
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov edi, eax
test edi, edi
jle 0x43dd99
lea eax, [edi + 1]
push eax
call fcn.0045c711
mov esi, eax
add esp, 4
lea eax, [edi + 1]
push eax
push 0
push esi
call fcn.0055e260
mov edx, dword [esp + 0x20]
add esp, 0xc
push 0
push 0
push edi
push esi
push 0xffffffffffffffff
push edx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push ecx
mov eax, esp
mov dword [esp + 0x18], esp
push esi
lea ecx, [esp + 0x24]
push ecx
push eax
call fcn.0040b980
mov esi, dword [esp + 0x28]
add esp, 0xc
call fcn.0043f7c0
mov eax, dword [esi + 0x180]
test eax, eax
jne 0x43df0a
mov esi, dword [esi + ebx*4 + 0x110]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x14], esp
mov dword [esp + 0x14], esp
call eax
cmp dword [esi - 4], 0
lea ecx, [esi - 4]
jl 0x43ddfc
cmp eax, dword [esi - 0x10]
jne 0x43ddfc
lea edi, [esi - 0x10]
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x43de2d
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x43d9a4
mov eax, dword [esi - 0xc]
mov dword [edi + 4], eax
mov eax, dword [esi - 0xc]
inc eax
push eax
push esi
push eax
lea ecx, [edi + 0x10]
push ecx
call fcn.0055a75d
add esp, 0x10
mov edx, dword [esp + 0x14]
add edi, 0x10
mov dword [edx], edi
call fcn.00405580
mov edi, dword [esp + 0x18]
mov ecx, eax
mov eax, dword [edi + 0x7c]
add esp, 4
mov esi, edx
cdq
push edx
sub ecx, 0x8000000
push eax
sbb esi, 0
push esi
push ecx
call fcn.00560480
mov esi, dword [edi + ebx*4 + 0x110]
push ecx
mov ecx, dword [esi - 0x10]
mov dword [esp + 0x68], eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
mov dword [esp + 0x14], esp
mov dword [esp + 0x14], esp
call edx
cmp dword [esi - 4], 0
lea edx, [esi - 4]
jl 0x43de96
cmp eax, dword [esi - 0x10]
jne 0x43de96
lea edi, [esi - 0x10]
mov eax, 1
lock xadd dword [edx], eax
jmp 0x43dec7
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x43d9a4
mov eax, dword [esi - 0xc]
mov dword [edi + 4], eax
mov eax, dword [esi - 0xc]
inc eax
push eax
push esi
push eax
lea ecx, [edi + 0x10]
push ecx
call fcn.0055a75d
add esp, 0x10
mov edx, dword [esp + 0x14]
add edi, 0x10
mov dword [edx], edi
call fcn.00405580
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x5c]
lea ecx, [ebx + ebx*2]
mov ecx, dword [edx + ecx*8 + 0xac]
mov edx, dword [esp + 0x18]
lea eax, [ecx + eax - 0x8000000]
mov ecx, dword [edx + 0x7c]
cdq
idiv ecx
mov esi, dword [esp + 0x18]
add esp, 4
sub eax, dword [esp + 0x64]
test edx, edx
je 0x43df3f
inc eax
jmp 0x43df3f
cmp eax, 1
jne 0x43df43
cmp dword [esi + 0x18c], 0
jne 0x43ef4f
cmp dword [esi + 0x190], 0
jne 0x43ef4f
mov eax, dword [esi + 0x184]
shl eax, 0xa
xor edx, edx
div dword [esi + 0x7c]
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x68]
push eax
lea ecx, [esp + 0x2c]
push str._04X
push ecx
call fcn.00403be0
add esp, 8
mov edx, esp
mov dword [esp + 0x14], esp
push 2
push 0
push edx
lea ecx, [esp + 0x38]
call fcn.00402090
call fcn.00405580
mov dword [esp + 0x14], esp
mov dword [esp + 0x70], eax
mov eax, esp
push 2
push 2
push eax
lea ecx, [esp + 0x38]
mov dword [esp + 0x80], edx
call fcn.00402090
call fcn.00405580
mov cl, byte [esp + 0x68]
add esp, 4
push 0
mov dword [esp + 0x64], edx
mov dl, byte [esp + 0x70]
mov byte [esp + 0x376], al
push 0x18
lea eax, [esp + 0x374]
push eax
mov byte [esp + 0x37c], cl
mov byte [esp + 0x37f], dl
push esi
lea edx, [esp + 0x30]
lea ecx, [esp + 0x4fc]
mov byte [esp + 0x37c], 0x30
mov byte [esp + 0x37d], bl
mov word [esp + 0x37e], 0x10
mov byte [esp + 0x381], 0
mov dword [esp + 0x30], 6
call fcn.0043c370
test al, al
je 0x43ef85
push 0
xor esi, esi
push esi
push esi
push 0xffffffffffffffff
push 0x5bc83c
push esi
push esi
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov edi, eax
test edi, edi
jle 0x43e065
xor ecx, ecx
lea eax, [edi + 1]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0045c711
mov esi, eax
add esp, 4
lea eax, [edi + edi + 2]
push eax
push 0
push esi
call fcn.0055e260
add esp, 0xc
push edi
push esi
push 0xffffffffffffffff
push 0x5bc83c
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push esi
call dword [sym.imp.LanguageLib.dll_Ordinal_1]
add esp, 4
xor esi, esi
mov dword [esp + 0x14], eax
test eax, eax
je 0x43e0c4
push esi
push esi
push esi
push esi
push 0xffffffffffffffff
mov ecx, eax
push ecx
push esi
push esi
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov edi, eax
test edi, edi
jle 0x43e0c4
lea eax, [edi + 1]
push eax
call fcn.0045c711
mov esi, eax
add esp, 4
lea eax, [edi + 1]
push eax
push 0
push esi
call fcn.0055e260
mov edx, dword [esp + 0x20]
add esp, 0xc
push 0
push 0
push edi
push esi
push 0xffffffffffffffff
push edx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push ecx
mov eax, esp
mov dword [esp + 0x18], esp
push esi
lea ecx, [esp + 0x24]
push ecx
push eax
call fcn.0040b980
mov esi, dword [esp + 0x28]
add esp, 0xc
call fcn.0043f7c0
cmp dword [esi + 0x180], 1
jne 0x43e0f8
mov edx, esi
mov dword [edx + 0x180], 2
push 0
xor edi, edi
push edi
push edi
push 0xffffffffffffffff
push 0x5bc848
push edi
push edi
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov esi, eax
test esi, esi
jle 0x43e154
xor ecx, ecx
lea eax, [esi + 1]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0045c711
mov edi, eax
add esp, 4
lea eax, [esi + esi + 2]
push eax
push 0
push edi
call fcn.0055e260
add esp, 0xc
push esi
push edi
push 0xffffffffffffffff
push 0x5bc848
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push edi
call dword [sym.imp.LanguageLib.dll_Ordinal_1]
add esp, 4
xor esi, esi
mov dword [esp + 0x14], eax
test eax, eax
je 0x43e1b3
push esi
push esi
push esi
push esi
push 0xffffffffffffffff
mov ecx, eax
push ecx
push esi
push esi
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov edi, eax
test edi, edi
jle 0x43e1b3
lea eax, [edi + 1]
push eax
call fcn.0045c711
mov esi, eax
add esp, 4
lea eax, [edi + 1]
push eax
push 0
push esi
call fcn.0055e260
mov edx, dword [esp + 0x20]
add esp, 0xc
push 0
push 0
push edi
push esi
push 0xffffffffffffffff
push edx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push ecx
mov eax, esp
mov dword [esp + 0x18], esp
push esi
lea ecx, [esp + 0x24]
push ecx
push eax
call fcn.0040b980
mov esi, dword [esp + 0x28]
add esp, 0xc
call fcn.0043f7c0
cmp dword [esi + ebx*4 + 0x174], 1
jne 0x43e3fc
mov edi, dword [esp + 0x58]
lea edx, [ebx + ebx*2]
lea eax, [edi + edx*8 + 0xac]
mov dword [esp + 0x48], eax
mov eax, dword [eax]
lea ecx, [eax - 4]
test cl, 0xf
jne 0x43f07f
push eax
call fcn.0045c711
mov edx, dword [esp + 0x4c]
mov esi, eax
mov eax, dword [edx]
add esp, 4
push eax
push 0
push esi
mov dword [esp + 0x1c], esi
call fcn.0055e260
mov edx, dword [esp + 0x54]
mov eax, dword [edx]
lea ecx, [ebx + ebx*2 + 0x15]
add esp, 0xc
lea edi, [edi + ecx*8]
mov ecx, dword [edi]
push eax
push ecx
push esi
call fcn.00560e30
mov edx, dword [edi]
add esp, 0xc
push 9
mov dword [esp + 0x38], edx
call fcn.0045c711
mov esi, eax
add esp, 4
mov edi, esi
xor edx, edx
mov eax, dword [esp + 0x34]
mov al, byte [edx + eax]
mov cl, al
shr cl, 4
and al, 0xf
mov byte [esp + 0x44], cl
mov byte [esp + 0x45], al
xor ecx, ecx
lea esp, [esp]
mov al, byte [esp + ecx + 0x44]
cmp al, 0xa
jae 0x43e27c
add al, 0x30
jmp 0x43e282
cmp al, 0x10
jae 0x43e286
add al, 0x37
mov byte [esp + ecx + 0x44], al
mov al, byte [esp + ecx + 0x44]
mov byte [edi], al
inc ecx
inc edi
cmp ecx, 2
jl 0x43e270
inc edx
cmp edx, 4
jl 0x43e251
push esi
lea ecx, [esp + 0x3c]
push 0x5b7070
push ecx
mov byte [esi + 8], 0
call fcn.00403be0
add esp, 0xc
push esi
call fcn.0045c706
add esp, 4
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x340]
push eax
push ecx
mov ecx, dword [esp + 0x20]
mov ebx, dword [ecx + ebx*4 + 0x150]
mov ecx, dword [ebx - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x40], esp
mov esi, esp
call eax
cmp dword [ebx - 4], 0
lea edx, [ebx - 4]
jl 0x43e2fe
cmp eax, dword [ebx - 0x10]
jne 0x43e2fe
lea edi, [ebx - 0x10]
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x43e32f
mov ecx, dword [ebx - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x43d9a4
mov eax, dword [ebx - 0xc]
mov dword [edi + 4], eax
mov eax, dword [ebx - 0xc]
inc eax
push eax
push ebx
push eax
lea ecx, [edi + 0x10]
push ecx
call fcn.0055a75d
add esp, 0x10
add edi, 0x10
mov dword [esi], edi
call fcn.004052b0
add esp, 0xc
lea edx, [esp + 0x33c]
push edx
lea ebx, [esp + 0x78]
call fcn.00403df0
mov eax, dword [esp + 0x48]
mov byte [esp + 0x680], 7
mov ecx, dword [eax]
mov esi, dword [esp + 0x10]
xor ebx, ebx
sub ecx, 4
je 0x43e384
lea edx, [esi + ebx + 4]
push edx
lea edi, [esp + 0x78]
call fcn.00404500
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
add ebx, 0x10
sub ecx, 4
cmp ebx, ecx
jb 0x43e366
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
lea edx, [esp + 0x34c]
push edx
sub ecx, 4
push ecx
lea edx, [esi + 4]
push edx
call fcn.00407850
add esp, 0xc
push eax
lea eax, [esp + 0x30]
push str._08X
push eax
call fcn.00403be0
add esp, 0xc
push esi
call fcn.0045c706
mov ebx, dword [esp + 0x3c]
xor eax, eax
add esp, 4
test ebx, ebx
setne al
test eax, eax
je 0x43d4cd
mov ecx, dword [esp + 0x2c]
push ebx
push ecx
call fcn.0055a9c8
add esp, 8
test eax, eax
setne al
test al, al
jne 0x43f14a
mov ebx, dword [esp + 0x50]
mov esi, dword [esp + 0x14]
mov byte [esp + 0x680], 6
call fcn.0045c778
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x43d4cd
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x34], eax
mov byte [esp + 0x680], 8
call fcn.0045c778
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x43d4cd
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x4c], eax
mov byte [esp + 0x680], 9
mov esi, dword [esi + ebx*4 + 0x110]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
xor eax, eax
mov word [esp + 0x21], ax
mov byte [esp + 0x23], al
mov eax, dword [edx + 0x10]
mov dword [esp + 0x14], esp
mov byte [esp + 0x20], 0
mov dword [esp + 0x14], esp
call eax
cmp dword [esi - 4], 0
lea edx, [esi - 4]
jl 0x43e49a
cmp eax, dword [esi - 0x10]
jne 0x43e49a
lea edi, [esi - 0x10]
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x43e4cb
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x43d9a4
mov eax, dword [esi - 0xc]
mov dword [edi + 4], eax
mov eax, dword [esi - 0xc]
inc eax
push eax
push esi
push eax
lea ecx, [edi + 0x10]
push ecx
call fcn.0055a75d
add esp, 0x10
mov edx, dword [esp + 0x14]
add edi, 0x10
mov dword [edx], edi
call fcn.00405580
add esp, 4
mov dword [esp + 0x60], edx
mov dword [esp + 0x10], eax
cmp eax, 0x3000
jl 0x43f22d
mov ecx, dword [esp + 0x58]
lea eax, [ebx + ebx*2]
mov edx, dword [ecx + eax*8 + 0xac]
sub edx, 4
lea eax, [ecx + eax*8 + 0xac]
mov dword [esp + 0x54], 0
mov dword [esp + 0x48], eax
je 0x43ed25
jmp 0x43e524
mov ebx, dword [esp + 0x50]
push 0x100
lea eax, [esp + 0x370]
push 0
push eax
call fcn.0055e260
add esp, 0xc
push 0x80
lea ecx, [esp + 0x470]
push 0
push ecx
mov dword [esp + 0x28], 0
call fcn.0055e260
mov edi, dword [esp + 0x20]
add esp, 0xc
cmp dword [edi + ebx*4 + 0x15c], 1
jne 0x43e783
mov ebx, dword [edi + ebx*4 + 0x150]
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x340]
push eax
push ecx
mov ecx, dword [ebx - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x2c], esp
mov dword [esp + 0x2c], esp
call eax
cmp dword [ebx - 4], 0
lea ecx, [ebx - 4]
jl 0x43e5af
cmp eax, dword [ebx - 0x10]
jne 0x43e5af
lea esi, [ebx - 0x10]
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x43e5e0
mov ecx, dword [ebx - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov esi, eax
test esi, esi
je 0x43d9a4
mov eax, dword [ebx - 0xc]
mov dword [esi + 4], eax
mov eax, dword [ebx - 0xc]
inc eax
push eax
push ebx
push eax
lea ecx, [esi + 0x10]
push ecx
call fcn.0055a75d
add esp, 0x10
mov edx, dword [esp + 0x2c]
add esi, 0x10
mov dword [edx], esi
call fcn.004052b0
add esp, 0xc
cmp dword [esp + 0x54], 0
jne 0x43e67c
mov ecx, dword [0x5b7714]
mov eax, dword [0x5b7710]
push 0
push 8
lea edx, [esp + 0x374]
push edx
mov dword [esp + 0x37c], ecx
push edi
lea edx, [esp + 0x30]
lea ecx, [esp + 0x4fc]
mov dword [esp + 0x37c], eax
mov dword [esp + 0x30], 0x16
call fcn.0043c370
test al, al
je 0x43f2bd
mov eax, dword [esp + 0x4f0]
mov ecx, dword [esp + 0x4f4]
mov edx, dword [esp + 0x4f8]
mov dword [esp + 0x32c], eax
mov eax, dword [esp + 0x4fc]
mov dword [esp + 0x330], ecx
mov dword [esp + 0x334], edx
mov dword [esp + 0x338], eax
jmp 0x43e6d8
cmp byte [esp + 0x32c], 0xff
jne 0x43e6d1
mov eax, dword [esp + 0x32c]
mov ecx, eax
shr ecx, 8
cmp cl, 0xff
jne 0x43e6c0
shr eax, 0x10
cmp al, cl
jne 0x43e6af
inc byte [esp + 0x32f]
mov byte [esp + 0x32e], 0
jmp 0x43e6d8
inc byte [esp + 0x32e]
mov byte [esp + 0x32d], 0
jmp 0x43e6d8
inc byte [esp + 0x32d]
mov byte [esp + 0x32c], 0
jmp 0x43e6d8
inc byte [esp + 0x32c]
mov eax, dword [esp + 0x330]
mov edx, dword [esp + 0x32c]
mov ecx, dword [esp + 0x334]
mov dword [esp + 0x360], eax
mov dword [esp + 0x35c], edx
mov edx, dword [esp + 0x338]
lea eax, [esp + 0x33c]
push eax
lea ebx, [esp + 0x78]
mov dword [esp + 0x368], ecx
mov dword [esp + 0x36c], edx
call fcn.00403df0
lea ecx, [esp + 0x35c]
push ecx
mov edi, ebx
call fcn.00404320
push 0x100
lea edx, [esp + 0x370]
push 0
push edx
call fcn.0055e260
mov eax, dword [esp + 0x368]
mov ecx, dword [esp + 0x36c]
mov edx, dword [esp + 0x370]
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x380], eax
mov eax, dword [esp + 0x374]
add esp, 0xc
mov dword [esp + 0x378], ecx
mov dword [esp + 0x37c], edx
mov dword [esp + 0x380], eax
cmp dword [esp + 0x54], 0
mov byte [esp + 0x36c], 0x31
mov byte [esp + 0x36d], bl
jbe 0x43e79e
sub dword [esp + 0x10], 0xffffff80
mov ecx, dword [esp + 0x10]
push ecx
lea edx, [esp + 0x34]
push str.0x_x
push edx
call fcn.00403be0
mov edi, dword [esp + 0x3c]
add esp, 0xc
lea eax, [esp + 0x1c]
push eax
push ecx
mov ecx, dword [edi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x28], esp
mov dword [esp + 0x28], esp
call eax
cmp dword [edi - 4], 0
lea ecx, [edi - 4]
jl 0x43e7ed
cmp eax, dword [edi - 0x10]
jne 0x43e7ed
lea esi, [edi - 0x10]
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x43e81e
mov ecx, dword [edi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov esi, eax
test esi, esi
je 0x43d9a4
mov eax, dword [edi - 0xc]
mov dword [esi + 4], eax
mov eax, dword [edi - 0xc]
inc eax
push eax
push edi
push eax
lea ecx, [esi + 0x10]
push ecx
call fcn.0055a75d
add esp, 0x10
mov edx, dword [esp + 0x28]
add esi, 0x10
mov dword [edx], esi
call fcn.00406410
movzx eax, byte [esp + 0x27]
mov esi, dword [esp + 0x1c]
mov cl, byte [esp + 0x26]
mov dl, byte [esp + 0x25]
mov byte [esp + 0x378], al
movzx eax, byte [esp + 0x24]
mov byte [esp + 0x37b], al
mov eax, dword [esi + ebx*4 + 0x168]
add esp, 8
mov byte [esp + 0x371], cl
mov byte [esp + 0x372], dl
cmp eax, 1
jne 0x43eb7c
cmp dword [esi + ebx*4 + 0x174], eax
jne 0x43ea52
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
mov eax, dword [esp + 0x54]
sub ecx, eax
add ecx, 0xfffffffc
cmp ecx, 0x80
jb 0x43e8a0
mov edi, 0x80
mov dword [esp + 0x1c], edi
jmp 0x43e8a6
mov dword [esp + 0x1c], ecx
mov edi, ecx
mov ecx, dword [esp + 0x58]
lea edx, [ebx + ebx*2 + 0x15]
mov edx, dword [ecx + edx*8]
push edi
lea eax, [edx + eax + 4]
push eax
lea ecx, [esp + 0x474]
push ecx
call fcn.00560e30
mov ebx, dword [esi + ebx*4 + 0x150]
add esp, 0xc
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x340]
push eax
push ecx
mov ecx, dword [ebx - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x2c], esp
mov dword [esp + 0x2c], esp
call eax
cmp dword [ebx - 4], 0
lea edx, [ebx - 4]
jl 0x43e90a
cmp eax, dword [ebx - 0x10]
jne 0x43e90a
lea esi, [ebx - 0x10]
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x43e93b
mov ecx, dword [ebx - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov esi, eax
test esi, esi
je 0x43d9a4
mov eax, dword [ebx - 0xc]
mov dword [esi + 4], eax
mov eax, dword [ebx - 0xc]
inc eax
push eax
push ebx
push eax
lea ecx, [esi + 0x10]
push ecx
call fcn.0055a75d
add esp, 0x10
mov edx, dword [esp + 0x2c]
add esi, 0x10
mov dword [edx], esi
call fcn.004052b0
add esp, 0xc
push edi
lea eax, [esp + 0x470]
push eax
lea ecx, [esp + 0x5f4]
push ecx
call fcn.00560e30
add esp, 0xc
lea edx, [esp + 0x33c]
push edx
lea ebx, [esp + 0x78]
call fcn.00403df0
mov byte [esp + 0x680], 0xa
mov ebx, dword [esp + 0x1c]
xor esi, esi
test ebx, ebx
je 0x43e9a8
jmp 0x43e990
lea eax, [esp + esi + 0x5ec]
push eax
lea edi, [esp + 0x78]
call fcn.00404500
add esi, 0x10
cmp esi, ebx
jb 0x43e990
lea ecx, [ebx + ebx + 1]
push ecx
call fcn.0045c711
mov edx, eax
add esp, 4
xor edi, edi
mov dword [esp + 0x20], edx
mov esi, edx
test ebx, ebx
jle 0x43ea08
mov al, byte [esp + edi + 0x5ec]
mov cl, al
shr cl, 4
and al, 0xf
mov byte [esp + 0x40], cl
mov byte [esp + 0x41], al
xor ecx, ecx
jmp 0x43e9e0
mov al, byte [esp + ecx + 0x40]
cmp al, 0xa
jae 0x43e9ec
add al, 0x30
jmp 0x43e9f2
cmp al, 0x10
jae 0x43e9f6
add al, 0x37
mov byte [esp + ecx + 0x40], al
mov al, byte [esp + ecx + 0x40]
mov byte [esi], al
inc ecx
inc esi
cmp ecx, 2
jl 0x43e9e0
inc edi
cmp edi, ebx
jl 0x43e9c3
push edx
lea ecx, [esp + 0x28]
push 0x5b7070
push ecx
mov byte [edx + ebx*2], 0
call fcn.00403be0
mov edx, dword [esp + 0x2c]
add esp, 0xc
push edx
call fcn.0045c706
add esp, 4
lea eax, [esp + 0x34c]
push eax
lea ecx, [esp + 0x5f0]
push ebx
push ecx
call fcn.00407850
add esp, 0xc
mov byte [esp + 0x680], 9
jmp 0x43ebdc
cmp eax, 1
jne 0x43eb7c
cmp dword [esi + ebx*4 + 0x174], 0
jne 0x43eb7c
mov edx, dword [esp + 0x48]
mov eax, dword [edx]
sub eax, dword [esp + 0x54]
cmp eax, 0x80
jb 0x43ea85
mov edi, 0x80
mov dword [esp + 0x1c], edi
jmp 0x43ea8b
mov dword [esp + 0x1c], eax
mov edi, eax
mov ecx, dword [esp + 0x58]
lea eax, [ebx + ebx*2 + 0x15]
mov edx, dword [ecx + eax*8]
add edx, dword [esp + 0x54]
push edi
push edx
lea eax, [esp + 0x474]
push eax
call fcn.00560e30
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + ebx*4 + 0x150]
add esp, 0xc
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x340]
push edx
push ecx
sub ebx, 0x10
mov dword [esp + 0x68], esp
mov esi, esp
push ebx
call fcn.00402b00
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.004052b0
add esp, 0xc
lea ecx, [esp + 0x34c]
push ecx
lea edx, [esp + 0x470]
push edi
push edx
call fcn.00407850
lea eax, [edi + edi + 1]
add esp, 0xc
push eax
call fcn.0045c711
mov esi, eax
mov ebx, edi
add esp, 4
mov edx, esi
lea edi, [esp + 0x46c]
call fcn.00405180
mov ecx, dword [esp + 0x1c]
push esi
lea edx, [esp + 0x28]
push 0x5b7070
push edx
mov byte [esi + ecx*2], 0
call fcn.00403be0
add esp, 0xc
push esi
call fcn.0045c706
add esp, 4
lea eax, [esp + 0x33c]
push eax
lea ebx, [esp + 0x78]
call fcn.00403df0
xor esi, esi
cmp dword [esp + 0x1c], esi
jbe 0x43ebd8
lea esp, [esp]
lea ecx, [esp + esi + 0x46c]
push ecx
lea edi, [esp + 0x78]
call fcn.00404320
add esi, 0x10
cmp esi, dword [esp + 0x1c]
jb 0x43eb60
jmp 0x43ebd8
mov edx, dword [esp + 0x48]
mov eax, dword [edx]
mov ecx, dword [esp + 0x54]
sub eax, ecx
cmp eax, 0x80
jb 0x43eb9a
mov esi, 0x80
mov dword [esp + 0x1c], esi
jmp 0x43eba0
mov dword [esp + 0x1c], eax
mov esi, eax
mov edx, dword [esp + 0x58]
lea eax, [ebx + ebx*2 + 0x15]
mov eax, dword [edx + eax*8]
add eax, ecx
push esi
push eax
lea ecx, [esp + 0x474]
push ecx
call fcn.00560e30
add esp, 0xc
lea edx, [esp + 0x34c]
push edx
lea eax, [esp + 0x470]
push esi
push eax
call fcn.00407850
add esp, 0xc
mov ebx, dword [esp + 0x1c]
lea ecx, [ebx + ebx + 1]
push ecx
call fcn.0045c711
mov esi, eax
add esp, 4
mov edx, esi
lea edi, [esp + 0x46c]
call fcn.00405180
mov ebx, dword [esp + 0x1c]
push esi
lea edx, [esp + 0x28]
push 0x5b7070
push edx
mov byte [esi + ebx*2], 0
call fcn.00403be0
add esp, 0xc
push esi
call fcn.0045c706
add esp, 4
push ebx
mov eax, edi
push eax
lea ecx, [esp + 0x38c]
push ecx
call fcn.00560e30
add esp, 0xc
cmp ebx, 0x80
je 0x43ec4d
lea edx, [ebx + 0x14]
mov byte [esp + 0x36e], dl
mov byte [esp + 0x36f], 0
jmp 0x43ec57
mov word [esp + 0x36e], 0x94
movzx eax, byte [esp + 0x34f]
mov cl, byte [esp + 0x34e]
mov dl, byte [esp + 0x34d]
mov byte [esp + ebx + 0x384], al
movzx eax, byte [esp + 0x34c]
push 0x100
mov byte [esp + ebx + 0x389], cl
lea ecx, [esp + 0x4f0]
push 0
push ecx
mov byte [esp + ebx + 0x392], dl
mov byte [esp + ebx + 0x393], al
call fcn.0055e260
mov esi, dword [esp + 0x20]
add esp, 0xc
push 0
add ebx, 0x1c
push ebx
lea edx, [esp + 0x374]
push edx
push esi
lea edx, [esp + 0x30]
lea ecx, [esp + 0x4fc]
mov dword [esp + 0x30], 6
call fcn.0043c370
test al, al
je 0x43f255
call fcn.0046cf3f
test eax, eax
je 0x43ecef
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x74]
call eax
jmp 0x43ecf1
xor eax, eax
mov ecx, dword [esi + 0xf8]
mov edx, dword [eax + 0x20]
push 0
push ecx
push 0xbcf
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x54]
mov edx, dword [ecx]
sub eax, 0xffffff80
sub edx, 4
mov dword [esp + 0x54], eax
cmp eax, edx
jb 0x43e520
push 0
mov ebx, 0x5bc894
call fcn.00407dc0
mov edi, dword [sym.imp.LanguageLib.dll_Ordinal_1]
push eax
call edi
add esp, 4
push eax
call fcn.00407d60
mov ecx, esp
mov dword [esp + 0x64], esp
push eax
lea edx, [esp + 0x24]
push edx
push ecx
call fcn.0040b980
mov esi, dword [esp + 0x28]
add esp, 0xc
call fcn.0043f7c0
push 0
mov ebx, 0x5bc8a4
call fcn.00407dc0
push eax
call edi
add esp, 4
push eax
call fcn.00407d60
mov ecx, esp
mov dword [esp + 0x64], esp
push eax
lea edx, [esp + 0x24]
push edx
push ecx
call fcn.0040b980
add esp, 0xc
call fcn.0043f7c0
cmp dword [esi + 0x128], 0
je 0x43ede0
mov ecx, dword [esp + 0x50]
push esi
call fcn.0043cdb0
test al, al
je 0x43f2e0
push 0
mov ebx, 0x5bc8c0
call fcn.00407dc0
push eax
call edi
add esp, 4
push eax
call fcn.00407d60
mov ecx, esp
mov dword [esp + 0x64], esp
push eax
lea edx, [esp + 0x24]
push edx
push ecx
call fcn.0040b980
add esp, 0xc
call fcn.0043f7c0
call fcn.0046cf3f
test eax, eax
je 0x43edf4
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x74]
call eax
jmp 0x43edf6
xor eax, eax
mov ecx, dword [esi + 0xf8]
mov edx, dword [eax + 0x20]
push 0
push ecx
push 0xbcf
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov byte [esp + 0x680], 8
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43ee36
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x680], 6
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43ee5e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [esp + 0x50]
inc ebx
mov dword [esp + 0x50], ebx
cmp ebx, 3
jl 0x43dac0
call fcn.0046cf3f
test eax, eax
je 0x43f312
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x74]
call eax
jmp 0x43f314
mov esi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push 0xdc
xor ebx, ebx
push ebx
push ebx
push 0xffffffffffffffff
push 0x5b7730
push ebx
push ebx
call esi
mov edi, eax
test edi, edi
jle 0x43eee8
xor ecx, ecx
lea eax, [edi + 1]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0045c711
mov ebx, eax
add esp, 4
lea eax, [edi + edi + 2]
push eax
push 0
push ebx
call fcn.0055e260
add esp, 0xc
push edi
push ebx
push 0xffffffffffffffff
push 0x5b7730
push 0
push 0
call esi
push ebx
call dword [sym.imp.LanguageLib.dll_Ordinal_1]
add esp, 4
xor edi, edi
mov dword [esp + 0x14], eax
test eax, eax
je 0x43ef42
push edi
push edi
push edi
push edi
push 0xffffffffffffffff
push eax
push edi
push edi
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ebx, eax
test ebx, ebx
jle 0x43ef42
lea esi, [ebx + 1]
push esi
call fcn.0045c711
add esp, 4
push esi
mov edi, eax
push 0
push edi
call fcn.0055e260
mov ecx, dword [esp + 0x20]
add esp, 0xc
push 0
push 0
push ebx
push edi
push 0xffffffffffffffff
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push ecx
mov edx, esp
mov dword [esp + 0x64], esp
push edi
jmp 0x43da68
push 0xdc
mov ebx, 0x5bb02c
call fcn.00407dc0
push eax
call dword [sym.imp.LanguageLib.dll_Ordinal_1]
add esp, 4
push eax
call fcn.00407d60
mov ecx, esp
mov dword [esp + 0x64], esp
push eax
lea edx, [esp + 0x24]
push edx
push ecx
call fcn.0040b980
jmp 0x43da77
push 0xdc
xor ebx, ebx
push ebx
push ebx
push 0xffffffffffffffff
push 0x5bc830
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov edi, eax
test edi, edi
jle 0x43efe4
xor ecx, ecx
lea eax, [edi + 1]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0045c711
mov ebx, eax
add esp, 4
lea eax, [edi + edi + 2]
push eax
push 0
push ebx
call fcn.0055e260
add esp, 0xc
push edi
push ebx
push 0xffffffffffffffff
push 0x5bc830
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push ebx
call dword [sym.imp.LanguageLib.dll_Ordinal_1]
add esp, 4
xor edi, edi
mov dword [esp + 0x14], eax
test eax, eax
je 0x43f043
push edi
push edi
push edi
push edi
push 0xffffffffffffffff
mov ecx, eax
push ecx
push edi
push edi
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ebx, eax
test ebx, ebx
jle 0x43f043
lea eax, [ebx + 1]
push eax
call fcn.0045c711
mov edi, eax
add esp, 4
lea eax, [ebx + 1]
push eax
push 0
push edi
call fcn.0055e260
mov edx, dword [esp + 0x20]
add esp, 0xc
push 0
push 0
push ebx
push edi
push 0xffffffffffffffff
push edx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push ecx
mov eax, esp
mov dword [esp + 0x64], esp
push edi
lea ecx, [esp + 0x24]
push ecx
push eax
call fcn.0040b980
add esp, 0xc
call fcn.0043f7c0
mov byte [esp + 0x680], 5
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x43d765
mov ebx, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push 0
xor edi, edi
push edi
push edi
push 0xffffffffffffffff
push 0x5bc854
push edi
push edi
call ebx
mov esi, eax
test esi, esi
jle 0x43f0d9
xor ecx, ecx
lea eax, [esi + 1]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0045c711
mov edi, eax
add esp, 4
lea eax, [esi + esi + 2]
push eax
push 0
push edi
call fcn.0055e260
add esp, 0xc
push esi
push edi
push 0xffffffffffffffff
push 0x5bc854
push 0
push 0
call ebx
push edi
call dword [sym.imp.LanguageLib.dll_Ordinal_1]
add esp, 4
xor esi, esi
mov dword [esp + 0x14], eax
test eax, eax
je 0x43f133
push esi
push esi
push esi
push esi
push 0xffffffffffffffff
push eax
push esi
push esi
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov edi, eax
test edi, edi
jle 0x43f133
lea ebx, [edi + 1]
push ebx
call fcn.0045c711
add esp, 4
push ebx
mov esi, eax
push 0
push esi
call fcn.0055e260
mov ecx, dword [esp + 0x20]
add esp, 0xc
push 0
push 0
push edi
push esi
push 0xffffffffffffffff
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push ecx
mov ecx, esp
mov dword [esp + 0x64], esp
push esi
call fcn.004026e0
call fcn.00410ac0
jmp 0x43f05e
push 0xdc
xor edi, edi
push edi
push edi
push 0xffffffffffffffff
push 0x5bc868
push edi
push edi
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov esi, eax
test esi, esi
jle 0x43f1a9
xor ecx, ecx
lea eax, [esi + 1]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0045c711
mov edi, eax
add esp, 4
lea eax, [esi + esi + 2]
push eax
push 0
push edi
call fcn.0055e260
add esp, 0xc
push esi
push edi
push 0xffffffffffffffff
push 0x5bc868
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push edi
call dword [sym.imp.LanguageLib.dll_Ordinal_1]
add esp, 4
xor esi, esi
mov dword [esp + 0x14], eax
test eax, eax
je 0x43f207
push esi
push esi
push esi
push esi
push 0xffffffffffffffff
push eax
push esi
push esi
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov edi, eax
test edi, edi
jle 0x43f207
lea ebx, [edi + 1]
push ebx
call fcn.0045c711
add esp, 4
push ebx
mov esi, eax
push 0
push esi
call fcn.0055e260
mov ecx, dword [esp + 0x20]
add esp, 0xc
push 0
push 0
push edi
push esi
push 0xffffffffffffffff
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ebx, dword [esp + 0x3c]
push ecx
mov ecx, esp
mov dword [esp + 0x64], esp
push esi
call fcn.004026e0
mov esi, dword [esp + 0x1c]
call fcn.0043f7c0
mov byte [esp + 0x680], 5
lea eax, [ebx - 0x10]
jmp 0x43f06d
push 0xdc
push ecx
mov ecx, esp
mov dword [esp + 0x64], esp
push 0x5bc880
lea edx, [esp + 0x24]
push edx
push ecx
call fcn.0040b980
mov esi, dword [esp + 0x28]
add esp, 0xc
call fcn.0043f7c0
mov byte [esp + 0x680], 8
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43f27d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x680], 6
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43da7f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x680], 5
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
jmp 0x43d758
push 0xdc
push ecx
mov ecx, esp
mov dword [esp + 0x64], esp
push 0x5b7730
lea edx, [esp + 0x24]
push edx
push ecx
call fcn.0040b980
mov esi, edi
jmp 0x43f24d
push 0xdc
mov ebx, 0x5bc8b4
call fcn.00407dc0
push eax
call edi
add esp, 4
push eax
call fcn.00407d60
mov ecx, esp
mov dword [esp + 0x64], esp
push eax
lea edx, [esp + 0x24]
push edx
push ecx
call fcn.0040b980
jmp 0x43f24d
xor eax, eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0xf8]
mov eax, dword [eax + 0x20]
push 0
push edx
push 0xbcf
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov byte [esp + 0x680], 5
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43f358
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x680], 4
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43f380
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x680], 3
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43f3a8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x680], 2
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43f3d0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x680], 1
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43f3f8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x680], 0
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43f420
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x680], 0xffffffff
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43f44b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, 1
mov ecx, dword [esp + 0x678]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x660]
xor ecx, esp
call fcn.0055a74e
mov esp, ebp
pop ebp
ret