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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x587e51
mov eax, dword fs:[0]
push eax
sub esp, 0x720
mov eax, dword [0x5e6990]
xor eax, esp
mov dword [esp + 0x718], eax
push ebx
push esi
push edi
mov eax, dword [0x5e6990]
xor eax, esp
push eax
lea eax, [esp + 0x730]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x3c], edi
call fcn.0045c778
xor ecx, ecx
xor ebx, ebx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x41a572
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 + 0x1c], eax
push ebx
push ebx
mov dword [esp + 0x740], ebx
mov ecx, dword [edi + 0x11528]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
push 0x147
push ecx
call esi
push ebx
cmp eax, ebx
jge 0x41a601
mov ebx, 0x5b99b4
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 + 0x2c], esp
push eax
call fcn.004026e0
call fcn.00410ac0
mov dword [esp + 0x738], 0xffffffff
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41a5fa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x41c265
mov ecx, dword [edi + 0x11270]
push ebx
push 0x147
push ecx
call esi
cmp eax, ebx
jge 0x41a61c
push ebx
mov ebx, 0x5b99c8
jmp 0x41a5a9
call fcn.0045c778
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x41a636
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 + 0x10], eax
lea ecx, [esp + 0x10]
push ecx
lea ecx, [edi + 0x11508]
mov byte [esp + 0x73c], 1
call fcn.004622ce
mov edx, dword [esp + 0x10]
cmp dword [edx - 0xc], ebx
jne 0x41a6df
push ebx
mov ebx, 0x5b9bb4
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 + 0x2c], esp
push eax
call fcn.004026e0
call fcn.00410ac0
mov byte [esp + 0x738], 0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41a6bb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x738], 0xffffffff
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x41a5ee
call fcn.0045c778
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x41a6f9
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 + 0x20], eax
lea ecx, [esp + 0x20]
push ecx
lea ecx, [edi + 0x11250]
mov byte [esp + 0x73c], 2
call fcn.004622ce
mov edx, dword [esp + 0x20]
cmp dword [edx - 0xc], ebx
jne 0x41a787
push ebx
mov ebx, 0x5b9bc8
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 + 0x2c], esp
push eax
call fcn.004026e0
call fcn.00410ac0
mov byte [esp + 0x738], 1
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41a693
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x41a693
xor esi, esi
mov dword [esp + 0x54], ebx
cmp dword [edi + 0x100c0], ebx
jle 0x41a7d5
lea ebx, [edi + 0xc4]
mov eax, dword [ebx]
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x41a568
mov ecx, dword [esp + 0x20]
push eax
push ecx
call fcn.0055a9c8
add esp, 8
test eax, eax
sete al
test al, al
jne 0x41a7d1
inc esi
add ebx, 0x20
cmp esi, dword [edi + 0x100c0]
jl 0x41a79b
jmp 0x41a7d5
mov dword [esp + 0x54], esi
call fcn.0045c778
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41a7ef
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 + 0x14], eax
lea ecx, [esp + 0x14]
push ecx
lea ecx, [edi + 0x11080]
mov byte [esp + 0x73c], 3
call fcn.004622ce
push 0x20
lea ecx, [esp + 0x18]
call fcn.004087e0
mov edx, dword [esp + 0x14]
mov eax, dword [edx - 0xc]
push 0
test eax, eax
jne 0x41a88b
mov ebx, 0x5b9bdc
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 + 0x2c], esp
push eax
call fcn.004026e0
call fcn.00410ac0
mov byte [esp + 0x738], 2
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41a756
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x41a756
cmp eax, 0x40
jle 0x41a897
mov ebx, 0x5b9bf0
jmp 0x41a834
mov ecx, dword [edi + 0x10f44]
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
xor esi, esi
push esi
push 0x146
push ecx
call ebx
test eax, eax
jle 0x41a960
call fcn.0045c778
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x41a568
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x30], eax
lea ecx, [esp + 0x30]
push ecx
push esi
lea ecx, [edi + 0x10f24]
mov byte [esp + 0x740], 4
call fcn.00465971
mov ecx, dword [esp + 0x14]
xor eax, eax
test ecx, ecx
setne al
test eax, eax
je 0x41a568
mov edx, dword [esp + 0x30]
push ecx
push edx
call fcn.0055a9c8
add esp, 8
test eax, eax
sete al
test al, al
jne 0x41a97a
mov byte [esp + 0x738], 3
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 0x41a945
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [edi + 0x10f44]
push 0
push 0
push 0x146
push ecx
inc esi
call ebx
cmp esi, eax
jl 0x41a8b6
call fcn.0045c778
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41a9d8
push 0x80004005
call fcn.00402e90
push 0
mov ebx, 0x5b9c10
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 + 0x2c], esp
push eax
call fcn.004026e0
call fcn.00410ac0
mov byte [esp + 0x738], 3
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41a85a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x41a85a
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x5c], eax
lea esi, [esp + 0x60]
mov byte [esp + 0x738], 5
call fcn.00406330
push str.FLM_
push eax
lea ecx, [esp + 0x4c]
push ecx
mov byte [esp + 0x744], 6
call fcn.0040b980
add esp, 0xc
mov esi, dword [esp + 0x54]
mov ecx, esi
shl ecx, 5
add ecx, edi
mov bl, 7
mov byte [esp + 0x738], bl
mov dword [esp + 0x24], ecx
add ecx, 0xd8
push ecx
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.00402140
add esp, 0xc
push eax
lea ecx, [esp + 0x60]
mov byte [esp + 0x73c], 8
call fcn.00402920
mov byte [esp + 0x738], bl
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 0x41aa7a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x738], 6
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41aaa2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x738], 5
mov eax, dword [esp + 0x60]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41aaca
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push esi
mov esi, dword [esp + 0x60]
push ecx
add esi, 0xfffffff0
mov dword [esp + 0x3c], esp
mov ebx, esp
push esi
mov dword [esp + 0x60], esi
call fcn.00402b00
add eax, 0x10
add esp, 4
mov dword [ebx], eax
call fcn.0041f1a0
test eax, eax
jne 0x41ab4b
mov ebx, 0x5b9c2c
push 0
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 + 0x2c], esp
push eax
call fcn.004026e0
call fcn.00410ac0
mov byte [esp + 0x738], 3
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41a85a
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
jmp 0x41a85a
cmp dword [edi + 0x10b18], 0
jne 0x41ab5b
mov ebx, 0x5b9c40
jmp 0x41aaf9
lea ecx, [esp + 0x64]
push ecx
call fcn.0043b940
lea ecx, [esp + 0x64]
mov byte [esp + 0x738], 9
call fcn.0046621f
cmp eax, 1
je 0x41abb6
lea ecx, [esp + 0x64]
mov byte [esp + 0x738], 5
call fcn.0043ba30
mov byte [esp + 0x738], 3
lea edx, [esi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x41a85a
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
jmp 0x41a85a
mov eax, dword [0x5f0040]
test eax, eax
je 0x41abd2
push eax
call fcn.0045c706
add esp, 4
mov dword [0x5f0040], 0
push 0x62c
call fcn.0045c6d7
add esp, 4
push 0x62c
mov esi, eax
push 0xff
push esi
mov dword [0x5f0040], esi
call fcn.0055e260
add esp, 0xc
lea ecx, [esp + 0x34]
push ecx
mov dword [esi], 0x62c
mov dword [esi + 4], 0xa5a5a5a5
mov dword [esi + 8], 0x10000
add esi, 0xc
push esi
push ecx
mov edx, esp
mov dword [esp + 0x40], esp
push edx
call fcn.004067d0
add esp, 4
call fcn.004052b0
mov eax, dword [0x5f0040]
mov ecx, dword [0x5e811c]
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
mov dword [eax + 0x1c], ecx
mov edx, dword [0x5e8120]
mov dword [eax + 0x20], edx
mov ecx, dword [0x5e8124]
mov dword [eax + 0x24], ecx
mov edx, dword [0x5e8128]
mov cl, byte [0x5f00b8]
add esp, 0xc
push 0
mov dword [eax + 0x28], edx
mov dl, byte [0x5f00bc]
push 0
mov byte [eax + 0x4e], cl
mov byte [eax + 0x4f], dl
mov eax, dword [edi + 0x113cc]
push 0x147
push eax
call ebx
mov edx, dword [0x5f0040]
cmp eax, 0xffffffff
sete cl
push 0
dec cl
and cl, al
push 0
mov byte [edx + 0x50], cl
mov eax, dword [edi + 0x10fb8]
push 0x147
push eax
call ebx
mov ecx, dword [0x5f0040]
cmp eax, 0xffffffff
je 0x41acb7
mov byte [ecx + 0x51], al
jmp 0x41acbb
mov byte [ecx + 0x51], 1
mov dl, byte [edi + 0x10b18]
push 0
push 0
mov byte [ecx + 0x52], dl
mov eax, dword [edi + 0x11188]
push 0x147
push eax
call ebx
cmp eax, 0xffffffff
je 0x41ace6
mov ecx, dword [0x5f0040]
mov byte [ecx + 0x53], al
jmp 0x41acf0
mov edx, dword [0x5f0040]
mov byte [edx + 0x51], 1
mov eax, dword [edi + 0x111fc]
push 0
push 0
push 0xf0
push eax
call ebx
mov ecx, dword [0x5f0040]
mov byte [ecx + 0x54], al
mov eax, dword [esp + 0x14]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x38], esp
mov esi, esp
push eax
call fcn.00402b00
lea edx, [esp + 0x3c]
add esp, 4
add eax, 0x10
push edx
mov dword [esi], eax
call fcn.00407000
add esp, 8
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x73c], 0xa
call fcn.00402920
mov byte [esp + 0x738], 9
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 0x41ad6e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx - 0xc]
mov ecx, dword [0x5f0040]
cdq
sub eax, edx
sar eax, 1
mov byte [ecx + 0x4c], al
cmp eax, 0x20
jle 0x41adfa
mov ebx, 0x5b9c54
push 0
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 + 0x2c], esp
push eax
call fcn.004026e0
call fcn.00410ac0
lea ecx, [esp + 0x64]
mov byte [esp + 0x738], 5
call fcn.0043ba30
lea ecx, [esp + 0x5c]
call fcn.00402f30
lea ecx, [esp + 0x14]
call fcn.00402f30
lea ecx, [esp + 0x20]
call fcn.00402f30
lea ecx, [esp + 0x10]
call fcn.00402f30
lea ecx, [esp + 0x1c]
call fcn.00402f30
xor eax, eax
jmp 0x41c265
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x44]
push edx
add ecx, 0x2c
push ecx
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x50], esp
mov esi, esp
push eax
call fcn.00402b00
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.004052b0
mov eax, dword [0x5f0040]
add esp, 0xc
push 0
push 0
mov dword [eax + 0x58], 0
mov ecx, dword [edi + 0x111fc]
push 0xf0
push ecx
call ebx
test eax, eax
je 0x41ae81
lea edx, [esp + 0x1c]
push edx
lea ecx, [edi + 0x110f4]
call fcn.004622ce
mov eax, dword [esp + 0x1c]
cmp dword [eax - 0xc], 0
jne 0x41ae6d
mov ebx, 0x5b9c70
jmp 0x41ad8d
push eax
call fcn.0055b017
mov ecx, dword [0x5f0040]
add esp, 4
mov dword [ecx + 0x5c], eax
jmp 0x41ae8e
mov edx, dword [0x5f0040]
mov dword [edx + 0x5c], 0
mov eax, dword [0x5f0044]
test eax, eax
je 0x41aeaa
push eax
call fcn.0045c706
add esp, 4
mov dword [0x5f0044], 0
push 0x84
call fcn.0045c6d7
add esp, 4
push 0x84
mov esi, eax
push 0xff
push esi
mov dword [0x5f0044], esi
call fcn.0055e260
mov eax, dword [0x5f0088]
add esp, 0xc
push 0x3ff
lea ecx, [esp + 0x329]
push 0
push ecx
mov dword [esi + 0x28], eax
mov byte [esp + 0x330], 0
call fcn.0055e260
add esp, 0xc
push 0x64
lea edx, [esp + 0x328]
push esi
push edx
call fcn.00560e30
add esp, 0xc
lea ecx, [esp + 0x30]
call fcn.00402ee0
lea eax, [esp + 0x30]
push eax
mov eax, 0x64
lea edi, [esp + 0x328]
mov byte [esp + 0x73c], 0xb
call fcn.00405270
mov ecx, dword [0x5f0088]
xor eax, eax
add esp, 4
push ecx
mov ecx, dword [0x5f0084]
lea ebx, [esp + 0x2f4]
mov byte [esp + 0x2f4], 0
mov dword [esp + 0x2f5], eax
mov dword [esp + 0x2f9], eax
mov dword [esp + 0x2fd], eax
mov dword [esp + 0x301], eax
mov dword [esp + 0x305], eax
mov dword [esp + 0x309], eax
mov dword [esp + 0x30d], eax
mov word [esp + 0x311], ax
mov byte [esp + 0x313], al
call fcn.004084c0
lea edx, [esp + 0x34]
add esp, 4
push edx
mov eax, 0x20
mov edi, ebx
call fcn.00405270
mov eax, dword [0x5f0044]
lea edi, [eax + 0x44]
mov ecx, 8
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x64]
mov ecx, 8
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [0x5f0040]
add esp, 4
add edi, 0x70
mov ecx, 0x21
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov esi, 0x5f0048
mov eax, dword [esi]
test eax, eax
je 0x41aff9
push eax
call fcn.0045c706
add esp, 4
mov dword [esi], 0
push 0x84
call fcn.0045c6d7
add esp, 4
push 0x84
push 0xff
push eax
mov dword [esi], eax
call fcn.0055e260
add esi, 4
add esp, 0xc
cmp esi, 0x5f0068
jl 0x41afe4
mov eax, dword [esp + 0x3c]
xor ebx, ebx
mov dword [esp + 0x18], ebx
cmp dword [eax + 0x10b18], ebx
jle 0x41b42b
mov edi, eax
add edi, 0x10b42
mov dword [esp + 0x40], ebx
mov dword [esp + 0x2c], edi
jmp 0x41b058
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x18]
mov ecx, dword [ebx*4 + 0x5f0048]
mov dword [ecx], 0xa5a5a5a5
mov edx, dword [ebx*4 + 0x5f0048]
mov byte [edx + 4], bl
mov eax, dword [edi - 0x16]
push eax
call fcn.0055b017
mov ecx, dword [ebx*4 + 0x5f0048]
mov byte [ecx + 5], al
mov eax, dword [edi - 0x22]
sub eax, 0x10
mov dword [esp + 0x38], esp
mov esi, esp
push eax
call fcn.00402b00
lea edx, [esp + 0x58]
add esp, 4
add eax, 0x10
push edx
mov dword [esi], eax
call fcn.00407000
add esp, 8
mov byte [esp + 0x738], 0xc
mov eax, dword [esp + 0x50]
mov eax, dword [eax - 0xc]
mov ecx, dword [ebx*4 + 0x5f0048]
cdq
sub eax, edx
sar eax, 1
mov byte [ecx + 7], al
mov eax, dword [ebx*4 + 0x5f0048]
lea edx, [esp + 0x44]
push edx
add eax, 8
push eax
mov eax, dword [esp + 0x58]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x40], esp
mov esi, esp
push eax
call fcn.00402b00
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.004052b0
mov eax, dword [edi - 0x26]
add esp, 8
sub eax, 0x10
mov dword [esp + 0x38], esp
mov esi, esp
push eax
call fcn.00402b00
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.00407ec0
mov ecx, dword [ebx*4 + 0x5f0048]
mov dword [ecx + 0x30], eax
mov eax, dword [edi - 0x1e]
sub eax, 0x10
mov dword [esp + 0x38], esp
mov esi, esp
push eax
call fcn.00402b00
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.00405580
mov dword [esp + 0x3c], edx
mov edx, dword [ebx*4 + 0x5f0048]
mov dword [edx + 0x38], eax
mov eax, dword [edi - 0x22]
add esp, 4
cmp dword [eax - 0xc], 0
jl 0x41b17b
push str..enc
push eax
call fcn.0055ac2f
add esp, 8
test eax, eax
je 0x41b17b
sub eax, dword [edi - 0x22]
cmp eax, 0xffffffff
jne 0x41b2e0
mov eax, dword [edi - 0x22]
cmp dword [eax - 0xc], 0
jl 0x41b1a2
push str..ENC
push eax
call fcn.0055ac2f
add esp, 8
test eax, eax
je 0x41b1a2
sub eax, dword [edi - 0x22]
cmp eax, 0xffffffff
jne 0x41b2e0
mov eax, dword [ebx*4 + 0x5f0048]
mov ecx, dword [edi - 6]
mov dword [eax + 0x28], ecx
mov edx, dword [ebx*4 + 0x5f0048]
mov eax, dword [edi - 6]
mov dword [edx + 0x2c], eax
mov ecx, dword [edi - 6]
lea esi, [edi + 2]
push ecx
mov ecx, dword [edi - 0xa]
mov ebx, esi
call fcn.004084c0
lea ebx, [edi + 0x22]
mov ecx, 8
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x30]
mov eax, dword [esi - 6]
add esp, 4
cmp eax, 0x800
jae 0x41b228
push 0x800
call fcn.0045c711
add esp, 4
push 0x800
mov edi, eax
push 0xff
push edi
call fcn.0055e260
mov edx, dword [esi - 6]
mov eax, dword [esi - 0xa]
add esp, 0xc
push edx
push eax
push edi
call fcn.00560e30
add esp, 0xc
add esi, 0x42
push esi
push 0x800
jmp 0x41b27e
mov edx, eax
and edx, 0xf
je 0x41b2a0
mov ecx, 0x10
sub ecx, edx
mov dword [esp + 0x58], ecx
je 0x41b2a0
add eax, ecx
push eax
call fcn.0045c711
mov ecx, dword [esi - 0xa]
mov edi, eax
mov eax, dword [esi - 6]
add esp, 4
push eax
push ecx
push edi
call fcn.00560e30
mov edx, dword [esp + 0x64]
mov eax, dword [esi - 6]
add esp, 0xc
push edx
add eax, edi
push 0xff
push eax
call fcn.0055e260
mov edx, dword [esi - 6]
add esp, 0xc
add edx, dword [esp + 0x58]
lea ecx, [esi + 0x42]
push ecx
push edx
push edi
call fcn.00407850
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx*4 + 0x5f0048]
add esp, 0xc
push edi
mov dword [edx + 0x3c], eax
call fcn.0045c706
add esp, 4
jmp 0x41b2bf
mov edx, dword [esi - 0xa]
lea ecx, [esi + 0x42]
push ecx
push eax
push edx
call fcn.00407850
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx*4 + 0x5f0048]
add esp, 0xc
mov dword [edx + 0x3c], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax*4 + 0x5f0048]
mov ecx, dword [eax + 0x3c]
mov edi, dword [esp + 0x2c]
jmp 0x41b391
movzx eax, byte [edi - 2]
movzx edx, byte [edi - 1]
movzx ecx, byte [edi]
shl eax, 8
or eax, edx
movzx edx, byte [edi + 1]
shl eax, 8
or eax, ecx
mov ecx, dword [ebx*4 + 0x5f0048]
shl eax, 8
or eax, edx
mov dword [ecx + 0x28], eax
mov edx, dword [ebx*4 + 0x5f0048]
mov eax, dword [edi - 6]
mov dword [edx + 0x2c], eax
mov ecx, dword [edi - 6]
push ecx
mov ecx, dword [edi - 0xa]
lea ebx, [edi + 0x22]
call fcn.004084c0
mov edx, dword [edi - 6]
mov eax, dword [edi - 0xa]
add esp, 4
lea esi, [edi + 0x46]
push esi
push edx
push eax
call fcn.00407850
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx*4 + 0x5f0048]
movzx edx, byte [edi + 0x42]
movzx ecx, byte [edi + 0x43]
shl edx, 8
or edx, ecx
movzx ecx, byte [edi + 0x44]
shl edx, 8
or edx, ecx
movzx ecx, byte [edi + 0x45]
shl edx, 8
or edx, ecx
mov dword [eax + 0x3c], edx
mov edx, dword [esp + 0x24]
mov eax, dword [edx*4 + 0x5f0048]
movzx ecx, byte [esi]
movzx edx, byte [edi + 0x47]
shl ecx, 8
or ecx, edx
movzx edx, byte [edi + 0x48]
shl ecx, 8
or ecx, edx
movzx edx, byte [edi + 0x49]
shl ecx, 8
add esp, 0xc
or ecx, edx
mov edx, dword [esp + 0x18]
mov dword [eax + 0x40], ecx
lea esi, [edi + 2]
mov edi, dword [edx*4 + 0x5f0048]
add edi, 0x44
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov edi, dword [edx*4 + 0x5f0048]
add edi, 0x64
mov ecx, 8
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x5f0040]
mov ecx, dword [esp + 0x40]
mov esi, dword [edx*4 + 0x5f0048]
lea edi, [ecx + eax + 0x20c]
mov ecx, 0x21
rep movsd dword es:[edi], dword [esi]
mov byte [esp + 0x738], 0xb
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or esi, 0xffffffff
lock xadd dword [ecx], esi
dec esi
test esi, esi
jg 0x41b409
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x2c], 0x70
add dword [esp + 0x40], 0x84
inc edx
mov dword [esp + 0x18], edx
cmp edx, dword [ecx + 0x10b18]
jl 0x41b050
mov eax, dword [0x5f006c]
test eax, eax
je 0x41b447
push eax
call fcn.0045c706
add esp, 4
mov dword [0x5f006c], 0
push 0x94
call fcn.0045c6d7
add esp, 4
push 0x94
mov esi, eax
push 0xff
push esi
mov dword [0x5f006c], esi
call fcn.0055e260
add esp, 0xc
mov dword [esi], 0xa5a5a5a5
call fcn.0045c778
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41b48f
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 + 0x58], eax
mov byte [esp + 0x738], 0xd
mov eax, dword [esp + 0x10]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x38], esp
mov esi, esp
push eax
call fcn.00402b00
lea ecx, [esp + 0x3c]
add esp, 4
add eax, 0x10
push ecx
mov dword [esi], eax
call fcn.00407000
add esp, 8
push eax
lea ecx, [esp + 0x5c]
mov byte [esp + 0x73c], 0xe
call fcn.00402920
mov byte [esp + 0x738], 0xd
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41b50a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x58]
mov eax, dword [ecx - 0xc]
cdq
sub eax, edx
mov edx, dword [0x5f006c]
sar eax, 1
mov byte [edx + 6], al
lea eax, [esp + 0x18]
push eax
add edx, 8
push edx
push ecx
lea eax, [ecx - 0x10]
mov dword [esp + 0x50], esp
mov esi, esp
push eax
mov dword [esp + 0x50], eax
call fcn.00402b00
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.004052b0
add esp, 0xc
call fcn.0045c778
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41b566
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 + 0x50], eax
mov byte [esp + 0x738], 0xf
mov eax, dword [esp + 0x20]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x38], esp
mov esi, esp
push eax
call fcn.00402b00
lea ecx, [esp + 0x4c]
add esp, 4
add eax, 0x10
push ecx
mov dword [esi], eax
call fcn.00407000
add esp, 8
push eax
lea ecx, [esp + 0x54]
mov byte [esp + 0x73c], 0x10
call fcn.00402920
mov byte [esp + 0x738], 0xf
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41b5e1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx - 0xc]
cdq
sub eax, edx
mov edx, dword [0x5f006c]
sar eax, 1
mov byte [edx + 7], al
mov dword [esp + 0x18], eax
lea eax, [esp + 0x18]
push eax
add edx, 0x28
push edx
push ecx
lea edi, [ecx - 0x10]
mov dword [esp + 0x40], esp
mov esi, esp
push edi
mov dword [esp + 0x44], edi
call fcn.00402b00
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.004052b0
mov esi, dword [esp + 0x30]
mov eax, dword [esi + 0xc8]
add esp, 8
sub eax, 0x10
mov dword [esp + 0x48], esp
mov ebx, esp
push eax
call fcn.00402b00
add eax, 0x10
add esp, 4
mov dword [ebx], eax
call fcn.00405580
mov ecx, dword [0x5f006c]
mov dword [ecx + 0x48], eax
mov eax, dword [esi + 0xd0]
sub eax, 0x10
mov dword [esp + 0x28], esp
mov ebx, esp
push eax
mov dword [esp + 0x30], edx
call fcn.00402b00
add eax, 0x10
add esp, 4
mov dword [ebx], eax
call fcn.00405580
mov dword [esp + 0x2c], edx
mov edx, dword [0x5f006c]
mov dword [edx + 0x50], eax
mov eax, dword [esi + 0xcc]
sub eax, 0x10
mov dword [esp + 0x28], esp
mov ebx, esp
push eax
call fcn.00402b00
add eax, 0x10
add esp, 4
mov dword [ebx], eax
call fcn.00405580
mov ecx, dword [0x5f006c]
mov dword [ecx + 0x54], eax
mov eax, dword [esi + 0xd4]
sub eax, 0x10
mov dword [esp + 0x28], esp
mov ebx, esp
push eax
mov dword [esp + 0x30], edx
call fcn.00402b00
add eax, 0x10
add esp, 4
mov dword [ebx], eax
call fcn.00405580
mov dword [esp + 0x2c], edx
mov edx, dword [0x5f006c]
mov dword [edx + 0x58], eax
mov esi, dword [esi + 0xdc]
mov dword [esp + 0x28], esp
mov ebx, esp
sub esi, 0x10
push esi
call fcn.00402b00
add eax, 0x10
add esp, 4
mov dword [ebx], eax
call fcn.00405580
mov ecx, dword [0x5f006c]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
add esp, 4
push 0
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x40]
push 0
mov dword [ecx + 0x4c], eax
mov eax, dword [edx + 0x112e4]
push 0xf0
push eax
call esi
test eax, eax
je 0x41b7e5
xor ebx, ebx
mov eax, dword [ebx*4 + 0x5f0070]
test eax, eax
je 0x41b75e
push eax
call fcn.0045c706
add esp, 4
mov dword [ebx*4 + 0x5f0070], 0
push 8
call fcn.0045c6d7
mov dword [ebx*4 + 0x5f0070], eax
or ecx, 0xffffffff
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov edx, dword [ebx*4 + 0x5e814c]
mov ecx, dword [ebx*4 + 0x5f0070]
mov dword [ecx], edx
mov eax, dword [ebx*4 + 0x5f0070]
mov byte [eax + 4], bl
mov ecx, dword [ebx*4 + 0x5f0070]
mov dl, byte [ebx + 0x5f00ac]
mov byte [ecx + 5], dl
mov eax, dword [ebx*4 + 0x5f0070]
mov cl, byte [ebx + 0x5f00b0]
mov byte [eax + 6], cl
mov edx, dword [ebx*4 + 0x5f0070]
mov al, byte [ebx + 0x5f00b4]
mov byte [edx + 7], al
mov eax, dword [ebx*4 + 0x5f0070]
mov edx, dword [eax]
mov ecx, dword [0x5f006c]
mov dword [ecx + ebx*8 + 0x64], edx
mov eax, dword [eax + 4]
mov dword [ecx + ebx*8 + 0x68], eax
inc ebx
add esp, 4
cmp ebx, 3
jl 0x41b73f
mov eax, dword [0x5f007c]
test eax, eax
je 0x41b801
push eax
call fcn.0045c706
add esp, 4
mov dword [0x5f007c], 0
push 0x18
call fcn.0045c6d7
or ecx, 0xffffffff
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
add esp, 4
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
push 0
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx + 0x11358]
push 0
push 0xf0
push edx
mov dword [0x5f007c], eax
call esi
test eax, eax
je 0x41bb94
mov cl, byte [0x5f00ab]
mov eax, dword [0x5f007c]
mov dword [eax], 0xa5a5a5a5
test cl, cl
je 0x41b86c
cmp cl, 1
je 0x41b86c
lea ecx, [esp + 0x24]
add eax, 4
push ecx
push eax
mov eax, dword [0x5f05e0]
jmp 0x41b87a
lea edx, [esp + 0x24]
add eax, 4
push edx
push eax
mov eax, dword [0x5f05e4]
push ecx
add eax, 0xfffffff0
mov esi, esp
mov dword [esp + 0x30], esp
push eax
call fcn.00402b00
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.004052b0
add esp, 0xc
mov eax, dword [0x5f007c]
mov ecx, dword [eax]
mov esi, dword [0x5f006c]
mov edi, dword [0x5f0040]
mov dword [esi + 0x7c], ecx
mov edx, dword [eax + 4]
mov dword [esi + 0x80], edx
mov ecx, dword [eax + 8]
mov dword [esi + 0x84], ecx
mov edx, dword [eax + 0xc]
mov dword [esi + 0x88], edx
mov ecx, dword [eax + 0x10]
mov dword [esi + 0x8c], ecx
mov edx, dword [eax + 0x14]
mov eax, dword [0x5f0080]
add edi, 0xf4
mov dword [esi + 0x90], edx
mov ecx, 0x25
rep movsd dword es:[edi], dword [esi]
xor esi, esi
cmp eax, esi
je 0x41b904
push eax
call fcn.0045c706
add esp, 4
mov dword [0x5f0080], esi
push 0x84
call fcn.0045c6d7
add esp, 4
push 0x84
push 0xff
push eax
mov dword [0x5f0080], eax
call fcn.0055e260
mov ecx, dword [esp + 0x1c]
add esp, 0xc
cmp dword [ecx - 0xc], esi
jl 0x41b99d
push 0x5b9cbc
push ecx
call fcn.0055ac2f
mov ecx, dword [esp + 0x18]
add esp, 8
cmp eax, esi
je 0x41b953
sub eax, ecx
cmp eax, 0xffffffff
jne 0x41bfb3
cmp dword [ecx - 0xc], esi
jl 0x41b99d
push 0x5b9ba4
push ecx
call fcn.0055ac2f
mov ecx, dword [esp + 0x18]
add esp, 8
cmp eax, esi
je 0x41b979
sub eax, ecx
cmp eax, 0xffffffff
jne 0x41bfb3
cmp dword [ecx - 0xc], esi
jl 0x41b99d
push str.N32G020
push ecx
call fcn.0055ac2f
add esp, 8
cmp eax, esi
je 0x41b99d
sub eax, dword [esp + 0x10]
cmp eax, 0xffffffff
jne 0x41bfb3
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x112e4]
push esi
push esi
push 0xf0
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x41bcb5
mov dword [esp + 0x2c], esi
mov edx, dword [0x5f0040]
cmp dword [edx + esi*8 + 0x158], 0xa5a5a5a5
jne 0x41bb74
xor eax, eax
mov byte [esp + 0x314], 0
mov dword [esp + 0x315], eax
mov dword [esp + 0x319], eax
mov dword [esp + 0x31d], eax
mov word [esp + 0x321], ax
mov byte [esp + 0x323], al
mov byte [esp + 0x2f0], al
mov dword [esp + 0x2f1], eax
mov dword [esp + 0x2f5], eax
mov dword [esp + 0x2f9], eax
mov word [esp + 0x2fd], ax
mov byte [esp + 0x2ff], al
call fcn.0045c778
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x41a568
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x60], eax
mov byte [esp + 0x738], 0x11
mov ecx, dword [0x5f0040]
movzx eax, byte [ecx + esi*8 + 0x15e]
lea eax, [eax*4 + 0x5f0180]
push eax
lea ecx, [esp + 0x64]
call fcn.00402920
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x318]
push eax
mov eax, dword [esp + 0x68]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x30], esp
mov edi, esp
push eax
mov dword [esp + 0x54], eax
call fcn.00402b00
add eax, 0x10
add esp, 4
mov dword [edi], eax
call fcn.004052b0
add esp, 0xc
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x2f4]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str.FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
call fcn.004026e0
call fcn.004052b0
add esp, 0xc
lea eax, [esp + 0x2f0]
push eax
lea ebx, [esp + 0x328]
call fcn.00403df0
lea ecx, [esp + 0x314]
push ecx
mov edi, ebx
call fcn.00404320
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
mov edi, dword [0x5f0080]
push eax
lea ecx, [esp + 0x318]
lea ebx, [edi + edx + 0x24]
push ecx
push ebx
call fcn.00560e30
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
add esp, 0xc
push edx
lea ecx, [edi + eax + 0x54]
push ebx
push ecx
call fcn.00560e30
mov edx, dword [0x5f0040]
mov byte [edi + esi + 0x1e], 0
mov al, byte [edx + esi*8 + 0x15e]
mov byte [esp + 0x744], 0xf
mov ecx, dword [esp + 0x50]
add esp, 0xc
mov byte [edi + esi + 0x21], al
add ecx, 0xc
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41bb74
mov eax, dword [esp + 0x44]
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
mov ebx, 1
add eax, 0x10
add esi, ebx
mov dword [esp + 0x2c], eax
cmp eax, 0x30
jl 0x41b9c1
jmp 0x41bcba
push 0x24
mov ebx, 0x5b9c84
call fcn.00407dc0
push eax
call dword [sym.imp.LanguageLib.dll_Ordinal_1]
add esp, 4
xor esi, esi
mov dword [esp + 0x30], eax
test eax, eax
je 0x41bbfd
push esi
push esi
push esi
push esi
push 0xffffffffffffffff
push eax
push esi
push esi
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ebx, eax
test ebx, ebx
jle 0x41bbfd
lea eax, [ebx + 1]
push eax
call fcn.0045c711
mov esi, eax
add esp, 4
lea eax, [ebx + 1]
push eax
push 0
push esi
call fcn.0055e260
mov ecx, dword [esp + 0x3c]
add esp, 0xc
push 0
push 0
push ebx
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 + 0x2c], esp
push esi
call fcn.004026e0
call fcn.00410ac0
cmp eax, 7
jne 0x41b89a
mov byte [esp + 0x738], 0xd
lea edx, [edi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x41bc39
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov eax, dword [esp + 0x40]
mov byte [esp + 0x738], 0xb
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41bc5e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x738], 9
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 0x41bc86
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x64]
mov byte [esp + 0x738], 5
call fcn.0043ba30
mov eax, dword [esp + 0x54]
mov byte [esp + 0x738], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x41a9c3
mov ebx, 1
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 0x11440]
push 0
push 0
push 0xf0
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x41bfb8
mov eax, dword [0x5f0040]
xor esi, esi
add eax, 0x15f
jmp 0x41bcf0
cmp dword [eax - 7], 0xa5a5a5a5
jne 0x41bd15
cmp byte [eax], 0
je 0x41bd15
cmp byte [esi + 0x5f00f0], bl
jne 0x41bd15
mov cl, byte [esi + 0x5f00ec]
cmp cl, byte [eax - 1]
jne 0x41be4d
add esi, ebx
add eax, 8
cmp esi, 3
jl 0x41bcf0
mov esi, dword [0x5f0080]
cmp byte [0x5f00f0], bl
jne 0x41bd84
mov cl, byte [0x5f00ec]
mov byte [esi + 0x21], cl
mov dl, byte [0x5f00f0]
mov byte [esi + 0x1e], dl
mov eax, dword [0x5f00f4]
mov dword [esi + 0x24], eax
mov ecx, dword [0x5f00f8]
mov dword [esi + 0x28], ecx
mov edx, dword [0x5f00fc]
mov dword [esi + 0x2c], edx
mov eax, dword [0x5f0100]
mov dword [esi + 0x30], eax
mov ecx, dword [0x5f0124]
mov dword [esi + 0x54], ecx
mov edx, dword [0x5f0128]
mov dword [esi + 0x58], edx
mov eax, dword [0x5f012c]
mov dword [esi + 0x5c], eax
mov ecx, dword [0x5f0130]
mov dword [esi + 0x60], ecx
cmp byte [0x5f00f1], bl
jne 0x41bde3
mov dl, byte [0x5f00ed]
mov byte [esi + 0x22], dl
mov al, byte [0x5f00f1]
mov byte [esi + 0x1f], al
mov ecx, dword [0x5f0104]
mov dword [esi + 0x34], ecx
mov edx, dword [0x5f0108]
mov dword [esi + 0x38], edx
mov eax, dword [0x5f010c]
mov dword [esi + 0x3c], eax
mov ecx, dword [0x5f0110]
mov dword [esi + 0x40], ecx
mov edx, dword [0x5f0134]
mov dword [esi + 0x64], edx
mov eax, dword [0x5f0138]
mov dword [esi + 0x68], eax
mov ecx, dword [0x5f013c]
mov dword [esi + 0x6c], ecx
mov edx, dword [0x5f0140]
mov dword [esi + 0x70], edx
cmp byte [0x5f00f2], bl
jne 0x41bfbe
mov al, byte [0x5f00ee]
mov byte [esi + 0x23], al
mov cl, byte [0x5f00f2]
mov byte [esi + 0x20], cl
mov edx, dword [0x5f0114]
mov dword [esi + 0x44], edx
mov eax, dword [0x5f0118]
mov dword [esi + 0x48], eax
mov ecx, dword [0x5f011c]
mov dword [esi + 0x4c], ecx
mov edx, dword [0x5f0120]
mov dword [esi + 0x50], edx
mov eax, dword [0x5f0144]
mov dword [esi + 0x74], eax
mov ecx, dword [0x5f0148]
mov dword [esi + 0x78], ecx
mov edx, dword [0x5f014c]
mov dword [esi + 0x7c], edx
mov eax, dword [0x5f0150]
mov dword [esi + 0x80], eax
jmp 0x41bfbe
call fcn.0045c778
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41be67
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 + 0x44], eax
push esi
push esi
lea ecx, [esp + 0x4c]
push 0x5b9ce8
push ecx
mov byte [esp + 0x748], 0x12
call fcn.00403be0
mov esi, dword [esp + 0x54]
add esp, 0x10
push 0
push ecx
add esi, 0xfffffff0
mov dword [esp + 0x2c], esp
mov edi, esp
push esi
call fcn.00402b00
add eax, 0x10
add esp, 4
mov dword [edi], eax
call fcn.00410ac0
mov byte [esp + 0x738], 0xf
lea edx, [esi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x41bed7
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov byte [esp + 0x738], 0xd
mov eax, dword [esp + 0x34]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41befc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x40]
mov byte [esp + 0x738], 0xb
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41bf21
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x738], 9
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 0x41bf49
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x64]
mov byte [esp + 0x738], 5
call fcn.0043ba30
mov eax, dword [esp + 0x54]
mov byte [esp + 0x738], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41bf7f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x738], 2
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41bfa7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x738], bl
jmp 0x41a75e
mov ebx, 1
mov esi, dword [0x5f0080]
mov edi, dword [0x5f0040]
push 0
add edi, 0x188
mov ecx, 0x21
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx + 0x114b4]
push 0
push 0xf0
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [0x5f0040]
mov byte [ecx + 0x55], al
test al, al
je 0x41c01a
or al, byte [0x5f00b7]
mov edx, dword [0x5f0178]
mov byte [ecx + 0x55], al
mov eax, dword [0x5f0174]
mov dword [ecx + 0x60], eax
mov eax, dword [0x5f017c]
mov dword [ecx + 0x64], edx
mov dword [ecx + 0x68], eax
lea edi, [esp + 0x24]
call fcn.004056b0
mov esi, dword [eax]
xor eax, eax
push esi
mov dword [esp + 0x2f4], eax
mov dword [esp + 0x2f8], eax
mov dword [esp + 0x2fc], eax
mov dword [esp + 0x300], eax
mov dword [esp + 0x304], eax
mov dword [esp + 0x308], eax
mov dword [esp + 0x30c], eax
mov dword [esp + 0x310], eax
mov dword [esp + 0x314], eax
call fcn.0055b02d
lea ecx, [esi + 5]
add esp, 4
sub eax, 0x76c
push ecx
mov dword [esp + 0x308], eax
call fcn.0055b02d
lea edx, [esi + 8]
add esp, 4
sub eax, ebx
push edx
mov dword [esp + 0x304], eax
call fcn.0055b02d
mov dword [esp + 0x300], eax
lea eax, [esi + 0xb]
add esp, 4
push eax
call fcn.0055b02d
lea ecx, [esi + 0xe]
add esp, 4
push ecx
mov dword [esp + 0x2fc], eax
call fcn.0055b02d
add esp, 4
add esi, 0x11
push esi
mov dword [esp + 0x2f8], eax
call fcn.0055b02d
lea edx, [esp + 0x2f4]
add esp, 4
push edx
mov dword [esp + 0x2f4], eax
call fcn.0055c4cd
mov ecx, dword [0x5f0040]
mov dword [ecx + 0x6c], eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov dword [esp + 0x4c], edx
add esp, 4
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41c119
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x738], 0xd
mov eax, dword [esp + 0x34]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c13e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x40]
mov byte [esp + 0x738], 0xb
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c163
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x738], 9
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 0x41c18b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x64]
mov byte [esp + 0x738], 5
call fcn.0043ba30
mov eax, dword [esp + 0x54]
mov byte [esp + 0x738], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c1c1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x738], 2
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c1e9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x738], bl
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c210
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x738], 0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c238
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x738], 0xffffffff
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c263
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, ebx
mov ecx, dword [esp + 0x730]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x718]
xor ecx, esp
call fcn.0055a74e
mov esp, ebp
pop ebp
ret