Function at 0x40c610
Capabilities:
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x4805d1
mov eax, dword fs:[0]
push eax
sub esp, 0x874
mov eax, dword [0x4a1620]
xor eax, esp
mov dword [esp + 0x870], eax
push ebx
push ebp
push edi
mov eax, dword [0x4a1620]
xor eax, esp
push eax
lea eax, [esp + 0x884]
mov dword fs:[0], eax
mov dword [esp + 0x88c], 0
call fcn.0044bb76
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40c66f
push 0x80004005
call fcn.004012e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x10], eax
push 0x800
lea ecx, [esp + 0x84]
push 0
push ecx
mov byte [esp + 0x898], 1
call fcn.00467720
mov ebp, dword [esp + 0x8a0]
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
add esp, 0xc
push ebp
push 0x800
lea edx, [esp + 0x88]
push edx
push 0x48df64
push 0x48df68
push 0x48df74
call edi
lea eax, [esp + 0x80]
push eax
call fcn.004669bd
push 0x800
lea ecx, [esp + 0x88]
push 0
push ecx
mov dword [esi + 0x82c], eax
call fcn.00467720
add esp, 0x10
push ebp
push 0x800
lea edx, [esp + 0x88]
push edx
push str.2000
push 0x48df88
push 0x48df74
call edi
lea eax, [esp + 0x80]
push eax
call fcn.004669bd
push 0x800
lea ecx, [esp + 0x88]
push 0
push ecx
mov dword [esi + 0x830], eax
call fcn.00467720
add esp, 0x10
push ebp
push 0x800
lea edx, [esp + 0x88]
push edx
push 0x48df64
push 0x48df98
push 0x48df74
call edi
lea eax, [esp + 0x80]
push eax
call fcn.004669bd
push 0x800
lea ecx, [esp + 0x88]
push 0
push ecx
mov dword [esi + 0x834], eax
call fcn.00467720
add esp, 0x10
push ebp
push 0x800
lea edx, [esp + 0x88]
push edx
push str.4000
push 0x48dfac
push 0x48df74
call edi
lea eax, [esp + 0x80]
push eax
call fcn.004669bd
push 0x800
lea ecx, [esp + 0x88]
push 0
push ecx
mov dword [esi + 0x838], eax
call fcn.00467720
add esp, 0x10
push ebp
push 0x800
lea edx, [esp + 0x88]
push edx
push 0x48dfbc
push 0x48dfc0
push 0x48df74
call edi
lea eax, [esp + 0x80]
push eax
call fcn.004669bd
push 0x800
lea ecx, [esp + 0x88]
push 0
push ecx
mov dword [esi + 0x840], eax
call fcn.00467720
add esp, 0x10
push ebp
push 0x800
lea edx, [esp + 0x88]
push edx
push 0x48dfcc
push 0x48dfd0
push 0x48df74
call edi
lea eax, [esp + 0x80]
push eax
call fcn.004669bd
push 0x800
lea ecx, [esp + 0x88]
push 0
push ecx
mov dword [esi + 0x844], eax
call fcn.00467720
add esp, 0x10
push ebp
push 0x800
lea edx, [esp + 0x88]
push edx
push 0x48de00
push 0x48dfe4
push 0x48df74
call edi
lea eax, [esp + 0x80]
lea ecx, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x40c890
sub eax, ecx
push eax
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x18]
call fcn.004018b0
mov ecx, dword [esp + 0x10]
push 0x48dff4
push ecx
call fcn.00466452
test eax, eax
sete al
xor edx, edx
test al, al
setne dl
push 0x800
lea eax, [esp + 0x8c]
push 0
push eax
mov dword [esi + 0x83c], edx
call fcn.00467720
add esp, 0x14
push ebp
push 0x800
lea ecx, [esp + 0x88]
push ecx
push 0x48de00
push 0x48dff8
push 0x48df74
call edi
lea eax, [esp + 0x80]
lea ecx, [eax + 1]
mov edi, edi
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x40c910
sub eax, ecx
push eax
lea edx, [esp + 0x84]
push edx
lea ecx, [esp + 0x18]
call fcn.004018b0
mov eax, dword [esp + 0x10]
push 0x48dff4
push eax
call fcn.00466452
add esp, 8
test eax, eax
sete al
test al, al
lea ecx, [esi + 0x7b8]
push 0x470
je 0x40c967
call fcn.004456c3
mov ecx, dword [eax + 0x20]
push 0
push 1
push 0xf1
push ecx
jmp 0x40c979
call fcn.004456c3
mov edx, dword [eax + 0x20]
push 0
push 0
push 0xf1
push edx
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
call ebx
push 0x800
lea eax, [esp + 0x84]
push 0
push eax
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea ecx, [esp + 0x88]
push ecx
push 0x48de00
push 0x48e000
push 0x48df74
call edi
lea eax, [esp + 0x80]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x40c9c1
sub eax, edx
push eax
lea edx, [esp + 0x84]
push edx
lea ecx, [esp + 0x18]
call fcn.004018b0
mov eax, dword [esp + 0x10]
push 0x48dff4
push eax
call fcn.00466452
add esp, 8
test eax, eax
sete al
test al, al
push 0x417
lea ecx, [esi + 0x7b8]
je 0x40ca18
call fcn.004456c3
mov ecx, dword [eax + 0x20]
push 0
push 1
push 0xf1
push ecx
jmp 0x40ca2a
call fcn.004456c3
mov edx, dword [eax + 0x20]
push 0
push 0
push 0xf1
push edx
call ebx
push 0x800
lea eax, [esp + 0x84]
push 0
push eax
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea ecx, [esp + 0x88]
push ecx
push 0x48a970
push 0x48e008
push 0x48df74
call edi
push ecx
lea edx, [esp + 0x84]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.004014f0
lea eax, [esi + 0xeb4]
push eax
call fcn.004445c0
push 0x800
lea ecx, [esp + 0x84]
push 0
push ecx
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea edx, [esp + 0x88]
push edx
push 0x48de00
push 0x48e010
push 0x48df74
call edi
lea eax, [esp + 0x80]
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x40cac2
sub eax, ecx
push eax
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x18]
call fcn.004018b0
mov ecx, dword [esp + 0x10]
push 0x48dff4
push ecx
call fcn.00466452
add esp, 8
test eax, eax
sete al
test al, al
push 0x432
lea ecx, [esi + 0x7b8]
je 0x40cb19
call fcn.004456c3
mov edx, dword [eax + 0x20]
push 0
push 1
push 0xf1
push edx
jmp 0x40cb2b
call fcn.004456c3
mov eax, dword [eax + 0x20]
push 0
push 0
push 0xf1
push eax
call ebx
push 0x800
lea ecx, [esp + 0x84]
push 0
push ecx
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea edx, [esp + 0x88]
push edx
push 0x48a970
push 0x48e018
push 0x48df74
call edi
push ecx
lea eax, [esp + 0x84]
mov ecx, esp
mov dword [esp + 0x28], esp
push eax
call fcn.004014f0
lea ecx, [esi + 0xf40]
push ecx
call fcn.004445c0
push 0x800
lea edx, [esp + 0x84]
push 0
push edx
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push 0x48de00
push 0x48e020
push 0x48df74
call edi
lea eax, [esp + 0x80]
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x40cbc3
sub eax, ecx
push eax
lea ecx, [esp + 0x84]
push ecx
lea ecx, [esp + 0x18]
call fcn.004018b0
mov edx, dword [esp + 0x10]
push 0x48dff4
push edx
call fcn.00466452
add esp, 8
test eax, eax
sete al
test al, al
push 0x46d
lea ecx, [esi + 0x7b8]
je 0x40cc1a
call fcn.004456c3
mov eax, dword [eax + 0x20]
push 0
push 1
push 0xf1
push eax
jmp 0x40cc2c
call fcn.004456c3
mov ecx, dword [eax + 0x20]
push 0
push 0
push 0xf1
push ecx
call ebx
push 0x800
lea edx, [esp + 0x84]
push 0
push edx
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push 0x48de00
push 0x48d810
push 0x48df74
call edi
lea eax, [esp + 0x80]
lea ecx, [eax + 1]
mov edi, edi
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x40cc70
sub eax, ecx
push eax
lea ecx, [esp + 0x84]
push ecx
lea ecx, [esp + 0x18]
call fcn.004018b0
mov edx, dword [esp + 0x10]
push 0x48dff4
push edx
call fcn.00466452
test eax, eax
sete al
xor ecx, ecx
test al, al
setne cl
push 0x800
lea edx, [esp + 0x8c]
push 0
push edx
mov dword [esi + 0x848], ecx
call fcn.00467720
add esp, 0x14
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push 0x48de00
push 0x48d81c
push 0x48df74
call edi
lea eax, [esp + 0x80]
lea ecx, [eax + 1]
mov edi, edi
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x40ccf0
sub eax, ecx
push eax
lea ecx, [esp + 0x84]
push ecx
lea ecx, [esp + 0x18]
call fcn.004018b0
mov edx, dword [esp + 0x10]
push 0x48dff4
push edx
call fcn.00466452
test eax, eax
sete al
xor ecx, ecx
test al, al
setne cl
push 0x800
lea edx, [esp + 0x8c]
push 0
push edx
mov dword [esi + 0x84c], ecx
call fcn.00467720
add esp, 0x14
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push 0x48de00
push 0x48d7d4
push 0x48df74
call edi
lea eax, [esp + 0x80]
lea ecx, [eax + 1]
mov edi, edi
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x40cd70
sub eax, ecx
push eax
lea ecx, [esp + 0x84]
push ecx
lea ecx, [esp + 0x18]
call fcn.004018b0
mov edx, dword [esp + 0x10]
push 0x48dff4
push edx
call fcn.00466452
test eax, eax
sete al
xor ecx, ecx
test al, al
setne cl
push 0x800
lea edx, [esp + 0x8c]
push 0
push edx
mov dword [esi + 0xeb0], ecx
call fcn.00467720
add esp, 0x14
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push 0x48e030
push 0x48e404
push 0x48e414
call edi
lea eax, [esp + 0x80]
lea ecx, [eax + 1]
mov edi, edi
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x40cdf0
sub eax, ecx
push eax
lea ecx, [esp + 0x84]
push ecx
lea ecx, [esp + 0x18]
call fcn.004018b0
lea ecx, [esp + 0x58]
call fcn.0044ee5a
push 0
push 0
mov byte [esp + 0x894], 2
mov edx, dword [esi + 0x15c0]
push 0x184
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
push 0xffffffffffffffff
push 0
lea ecx, [esi + 0x1288]
call fcn.0044eef8
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push 0x48dd48
call fcn.004014f0
lea eax, [esp + 0x5c]
push eax
mov byte [esp + 0x894], 3
mov eax, dword [esp + 0x18]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x34], esp
mov ebx, esp
push eax
call fcn.00402200
add eax, 0x10
mov dword [ebx], eax
add esp, 4
mov byte [esp + 0x898], 2
call fcn.00419cb0
mov eax, dword [esp + 0x60]
xor ebx, ebx
test eax, eax
jle 0x40cecb
test ebx, ebx
jl 0x40d007
cmp ebx, eax
jge 0x40d007
mov ecx, dword [esp + 0x5c]
mov eax, dword [ecx + ebx*4]
mov edx, dword [esi + 0x15c0]
push eax
push 0
push 0x180
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [esp + 0x60]
add ebx, 1
cmp ebx, eax
jl 0x40ce94
lea ebx, [esi + 0x120c]
call fcn.0043d140
push 0x800
lea eax, [esp + 0x84]
push 0
push eax
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea ecx, [esp + 0x88]
push ecx
push 0x48e420
push 0x48e424
push 0x48e414
call edi
lea edx, [esp + 0x80]
push edx
call fcn.004669bd
push 0x800
mov dword [esi + 0x14dc], eax
lea eax, [esp + 0x88]
push 0
push eax
call fcn.00467720
add esp, 0x10
push ebp
push 0x800
lea ecx, [esp + 0x88]
push ecx
push 0x48e438
push 0x48d8ec
push 0x48e500
call edi
lea eax, [esp + 0x80]
lea ecx, [eax + 1]
nop
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x40cf60
sub eax, ecx
push eax
lea edx, [esp + 0x84]
push edx
lea ecx, [esp + 0x18]
call fcn.004018b0
lea ecx, [esp + 0x44]
call fcn.0044ee5a
push 0
push 0
mov byte [esp + 0x894], 4
mov eax, dword [esi + 0x1e90]
push 0x184
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
push 0xffffffffffffffff
push 0
lea ecx, [esi + 0x1720]
call fcn.0044eef8
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push 0x48dd48
call fcn.004014f0
mov byte [esp + 0x890], 5
mov ebx, dword [esp + 0x14]
lea ecx, [esp + 0x48]
push ecx
push ecx
mov ecx, dword [ebx - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add ebx, 0xfffffff0
mov dword [esp + 0x34], esp
mov dword [esp + 0x28], esp
call eax
cmp dword [ebx + 0xc], 0
lea edx, [ebx + 0xc]
jl 0x40d00c
cmp eax, dword [ebx]
jne 0x40d00c
mov dword [esp + 0x20], ebx
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x40d049
call fcn.0044c4a2
mov ecx, dword [ebx + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
test eax, eax
mov dword [esp + 0x20], eax
jne 0x40d027
call fcn.00401430
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x20]
mov dword [ecx + 4], eax
mov eax, dword [ebx + 4]
add eax, 1
push eax
add ebx, 0x10
push ebx
push eax
add ecx, 0x10
push ecx
call fcn.00465e9e
add esp, 0x10
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
add ecx, 0x10
mov dword [edx], ecx
mov byte [esp + 0x898], 4
call fcn.00419cb0
mov eax, dword [esp + 0x4c]
xor ebx, ebx
test eax, eax
jle 0x40d09f
lea ecx, [ecx]
test ebx, ebx
jl 0x40d007
cmp ebx, eax
jge 0x40d007
mov eax, dword [esp + 0x48]
mov eax, dword [eax + ebx*4]
mov ecx, dword [esi + 0x1e90]
push eax
push 0
push 0x180
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [esp + 0x4c]
add ebx, 1
cmp ebx, eax
jl 0x40d070
lea ebx, [esi + 0x16ac]
call fcn.0043e8e0
push 0x800
lea edx, [esp + 0x84]
push 0
push edx
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push 0x48de00
push 0x48e50c
push 0x48e500
call edi
lea eax, [esp + 0x80]
lea ecx, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x40d0f0
sub eax, ecx
push eax
lea ecx, [esp + 0x84]
push ecx
lea ecx, [esp + 0x18]
call fcn.004018b0
mov edx, dword [esp + 0x10]
push 0x48dff4
push edx
call fcn.00466452
add esp, 8
test eax, eax
sete al
test al, al
push 0x412
lea ecx, [esi + 0x16ac]
je 0x40d147
call fcn.004456c3
mov eax, dword [eax + 0x20]
push 0
push 1
push 0xf1
push eax
jmp 0x40d159
call fcn.004456c3
mov ecx, dword [eax + 0x20]
push 0
push 0
push 0xf1
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x800
lea edx, [esp + 0x84]
push 0
push edx
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push 0x48e518
push 0x48e51c
push 0x48e500
call edi
lea ecx, [esp + 0x80]
push ecx
call fcn.004669bd
push 0x800
lea edx, [esp + 0x88]
push 0
push edx
mov dword [esi + 0x1f7c], eax
call fcn.00467720
add esp, 0x10
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push 0x48de00
push 0x48e528
push 0x48e500
call edi
lea ecx, [esp + 0x80]
push ecx
call fcn.004669bd
push 0x800
lea edx, [esp + 0x88]
push 0
push edx
mov dword [esi + 0x1878], eax
call fcn.00467720
add esp, 0x10
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push 0x48de00
push 0x48e534
push 0x48e500
call edi
lea ecx, [esp + 0x80]
push ecx
call fcn.004669bd
push 0x800
lea edx, [esp + 0x88]
push 0
push edx
mov dword [esi + 0x187c], eax
call fcn.00467720
add esp, 0x10
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push 0x48c9ec
push 0x48d948
push 0x48e500
call edi
lea eax, [esp + 0x80]
lea ecx, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x40d280
sub eax, ecx
push eax
lea ecx, [esp + 0x84]
push ecx
lea ecx, [esp + 0x18]
call fcn.004018b0
mov ebx, dword [esp + 0x10]
push ecx
mov ecx, dword [ebx - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add ebx, 0xfffffff0
mov dword [esp + 0x28], esp
mov dword [esp + 0x20], esp
call eax
cmp dword [ebx + 0xc], 0
lea edx, [ebx + 0xc]
jl 0x40d2d3
cmp eax, dword [ebx]
jne 0x40d2d3
mov dword [esp + 0x18], ebx
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x40d310
mov ecx, dword [ebx + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
test eax, eax
mov dword [esp + 0x18], eax
jne 0x40d2ee
call fcn.00401430
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
mov dword [ecx + 4], eax
mov eax, dword [ebx + 4]
add eax, 1
push eax
add ebx, 0x10
push ebx
push eax
add ecx, 0x10
push ecx
call fcn.00465e9e
add esp, 0x10
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
lea eax, [esi + 0x1c40]
add ecx, 0x10
push eax
mov dword [edx], ecx
call fcn.004445c0
push 0x800
lea ecx, [esp + 0x84]
push 0
push ecx
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea edx, [esp + 0x88]
push edx
push 0x48c9ec
push 0x48d950
push 0x48e500
call edi
lea eax, [esp + 0x80]
lea ecx, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x40d370
sub eax, ecx
push eax
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x18]
call fcn.004018b0
mov ebx, dword [esp + 0x10]
push ecx
mov ecx, dword [ebx - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add ebx, 0xfffffff0
mov dword [esp + 0x28], esp
mov dword [esp + 0x20], esp
call eax
cmp dword [ebx + 0xc], 0
lea edx, [ebx + 0xc]
jl 0x40d3c3
cmp eax, dword [ebx]
jne 0x40d3c3
mov dword [esp + 0x18], ebx
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x40d400
mov ecx, dword [ebx + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
test eax, eax
mov dword [esp + 0x18], eax
jne 0x40d3de
call fcn.00401430
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
mov dword [ecx + 4], eax
mov eax, dword [ebx + 4]
add eax, 1
push eax
add ebx, 0x10
push ebx
push eax
add ecx, 0x10
push ecx
call fcn.00465e9e
add esp, 0x10
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
lea eax, [esi + 0x1ccc]
add ecx, 0x10
push eax
mov dword [edx], ecx
call fcn.004445c0
push 0x800
lea ecx, [esp + 0x84]
push 0
push ecx
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea edx, [esp + 0x88]
push edx
push 0x48e540
push 0x48d8f8
push 0x48e500
call edi
lea eax, [esp + 0x80]
push eax
call fcn.004669bd
push 0x800
lea ecx, [esp + 0x88]
push 0
push ecx
mov dword [esi + 0x1734], eax
call fcn.00467720
add esp, 0x10
push ebp
push 0x800
lea edx, [esp + 0x88]
push edx
push 0x48e544
push 0x48e550
push 0x48e500
call edi
lea eax, [esp + 0x80]
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x40d4a2
sub eax, ecx
push eax
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x18]
call fcn.004018b0
mov ebx, dword [esp + 0x10]
push ecx
mov ecx, dword [ebx - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add ebx, 0xfffffff0
mov dword [esp + 0x28], esp
mov dword [esp + 0x20], esp
call eax
cmp dword [ebx + 0xc], 0
lea edx, [ebx + 0xc]
jl 0x40d4f5
cmp eax, dword [ebx]
jne 0x40d4f5
mov dword [esp + 0x18], ebx
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x40d532
mov ecx, dword [ebx + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
test eax, eax
mov dword [esp + 0x18], eax
jne 0x40d510
call fcn.00401430
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
mov dword [ecx + 4], eax
mov eax, dword [ebx + 4]
add eax, 1
push eax
add ebx, 0x10
push ebx
push eax
add ecx, 0x10
push ecx
call fcn.00465e9e
add esp, 0x10
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
lea eax, [esi + 0x1d58]
add ecx, 0x10
push eax
mov dword [edx], ecx
call fcn.004445c0
push 0x800
lea ecx, [esp + 0x84]
push 0
push ecx
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea edx, [esp + 0x88]
push edx
push 0x48e55c
push 0x48e560
push 0x48e500
call edi
lea eax, [esp + 0x80]
push eax
call fcn.004669bd
push 0x800
lea ecx, [esp + 0x88]
push 0
push ecx
mov dword [esi + 0x173c], eax
call fcn.00467720
add esp, 0x10
push ebp
push 0x800
lea edx, [esp + 0x88]
push edx
push 0x48e540
push 0x48d904
push 0x48e500
call edi
lea eax, [esp + 0x80]
push eax
call fcn.004669bd
push 0x800
lea ecx, [esp + 0x88]
push 0
push ecx
mov dword [esi + 0x1738], eax
call fcn.00467720
add esp, 0x10
push ebp
push 0x800
lea edx, [esp + 0x88]
push edx
push 0x48e56c
push 0x48e578
push 0x48e500
call edi
lea eax, [esp + 0x80]
lea ecx, [eax + 1]
lea ecx, [ecx]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x40d620
sub eax, ecx
push eax
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x18]
call fcn.004018b0
mov ebx, dword [esp + 0x10]
push ecx
mov ecx, dword [ebx - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add ebx, 0xfffffff0
mov dword [esp + 0x28], esp
mov dword [esp + 0x20], esp
call eax
cmp dword [ebx + 0xc], 0
lea edx, [ebx + 0xc]
jl 0x40d673
cmp eax, dword [ebx]
jne 0x40d673
mov dword [esp + 0x18], ebx
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x40d6b0
mov ecx, dword [ebx + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
test eax, eax
mov dword [esp + 0x18], eax
jne 0x40d68e
call fcn.00401430
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
mov dword [ecx + 4], eax
mov eax, dword [ebx + 4]
add eax, 1
push eax
add ebx, 0x10
push ebx
push eax
add ecx, 0x10
push ecx
call fcn.00465e9e
add esp, 0x10
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
lea eax, [esi + 0x1de4]
add ecx, 0x10
push eax
mov dword [edx], ecx
call fcn.004445c0
push 0x800
lea ecx, [esp + 0x84]
push 0
push ecx
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea edx, [esp + 0x88]
push edx
push 0x48e55c
push 0x48e584
push 0x48e500
call edi
lea eax, [esp + 0x80]
push eax
call fcn.004669bd
push 0x800
lea ecx, [esp + 0x88]
push 0
push ecx
mov dword [esi + 0x1740], eax
call fcn.00467720
add esp, 0x10
push ebp
push 0x800
lea edx, [esp + 0x88]
push edx
push 0x48e518
push 0x48e590
push 0x48e59c
call edi
lea eax, [esp + 0x80]
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x40d752
sub eax, ecx
push eax
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x18]
call fcn.004018b0
mov ecx, dword [esp + 0x10]
push ecx
call fcn.004669bd
add esp, 4
mov dword [esi + 0x47ec], eax
sub eax, 0
je 0x40d84e
sub eax, 1
je 0x40d800
sub eax, 1
jne 0x40d8bb
xor ebx, ebx
push 0x430
mov ecx, esi
mov dword [esi + 0x220c], 1
mov dword [esi + 0x2210], ebx
mov dword [esi + 0x2214], ebx
call fcn.004456c3
mov edx, dword [eax + 0x20]
push ebx
push ebx
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
push 0xf1
push edx
call ebx
push 0x431
mov ecx, esi
call fcn.004456c3
mov eax, dword [eax + 0x20]
push 0
push 0
push 0xf1
push eax
call ebx
push 0x4ab
mov ecx, esi
call fcn.004456c3
push 0
push 1
jmp 0x40d8b0
mov eax, 1
push 0x430
mov ecx, esi
mov dword [esi + 0x220c], eax
mov dword [esi + 0x2210], eax
mov dword [esi + 0x2214], 0
call fcn.004456c3
mov edx, dword [eax + 0x20]
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 0
push 0xf1
push edx
call ebx
push 0x431
mov ecx, esi
call fcn.004456c3
push 0
push 1
jmp 0x40d895
mov ebx, 1
push 0x430
mov ecx, esi
mov dword [esi + 0x220c], ebx
mov dword [esi + 0x2210], ebx
mov dword [esi + 0x2214], ebx
call fcn.004456c3
mov edx, dword [eax + 0x20]
push 0
push ebx
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
push 0xf1
push edx
call ebx
push 0x431
mov ecx, esi
call fcn.004456c3
push 0
push 0
mov eax, dword [eax + 0x20]
push 0xf1
push eax
call ebx
push 0x4ab
mov ecx, esi
call fcn.004456c3
push 0
push 0
mov ecx, dword [eax + 0x20]
push 0xf1
push ecx
call ebx
push 0x800
lea edx, [esp + 0x84]
push 0
push edx
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push 0x48e5a8
push 0x48e5ac
push 0x48e59c
call edi
lea ecx, [esp + 0x80]
push ecx
call fcn.004669bd
push 0x800
lea edx, [esp + 0x88]
push 0
push edx
mov dword [esi + 0x2108], eax
call fcn.00467720
add esp, 0x10
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push 0x48de00
push 0x48e5bc
push 0x48e59c
call edi
lea eax, [esp + 0x80]
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x40d944
sub eax, ecx
push eax
lea ecx, [esp + 0x84]
push ecx
lea ecx, [esp + 0x18]
call fcn.004018b0
mov edx, dword [esp + 0x10]
push 0x48dff4
push edx
call fcn.00466452
test eax, eax
sete al
xor ecx, ecx
test al, al
setne cl
push 0x800
lea edx, [esp + 0x8c]
push 0
push edx
mov dword [esi + 0x2218], ecx
call fcn.00467720
add esp, 0x14
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push 0x48e5cc
push 0x48e5d4
push 0x48e59c
call edi
call fcn.0044bb76
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40d9d2
push 0x80004005
call fcn.004012e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x88c], 6
call fcn.0044ee5a
lea ecx, [esp + 0x80]
push ecx
lea edx, [esp + 0x30]
push 0x48df60
push edx
mov byte [esp + 0x898], 7
call fcn.004023e0
add esp, 8
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0x48bce8
call fcn.004014f0
mov byte [esp + 0x890], 8
mov ebx, dword [esp + 0x30]
lea eax, [esp + 0x34]
push eax
push ecx
mov ecx, dword [ebx - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add ebx, 0xfffffff0
mov dword [esp + 0x30], esp
mov dword [esp + 0x28], esp
mov dword [esp + 0x30], ebx
call eax
cmp dword [ebx + 0xc], 0
lea edx, [ebx + 0xc]
jl 0x40da6c
cmp eax, dword [ebx]
jne 0x40da6c
mov dword [esp + 0x20], ebx
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x40daa9
mov ecx, dword [ebx + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
test eax, eax
mov dword [esp + 0x20], eax
jne 0x40da87
call fcn.00401430
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x20]
mov dword [ecx + 4], eax
mov eax, dword [ebx + 4]
add eax, 1
push eax
add ebx, 0x10
push ebx
push eax
add ecx, 0x10
push ecx
call fcn.00465e9e
add esp, 0x10
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
add ecx, 0x10
mov dword [edx], ecx
mov byte [esp + 0x898], 7
call fcn.00419cb0
mov eax, dword [esi + 0x21d8]
push 0
push 0
push 0x184
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [esp + 0x38]
xor ebx, ebx
test eax, eax
jle 0x40db1a
test ebx, ebx
jl 0x40d007
cmp ebx, eax
jge 0x40d007
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + ebx*4]
mov edx, dword [esi + 0x21d8]
push eax
push 0
push 0x180
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [esp + 0x38]
add ebx, 1
cmp ebx, eax
jl 0x40dae3
push 0x800
lea eax, [esp + 0x84]
push 0
push eax
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea ecx, [esp + 0x88]
push ecx
push 0x48a970
push 0x48d714
push 0x48e5e0
call edi
call fcn.0044bb76
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40db6a
push 0x80004005
call fcn.004012e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
lea ecx, [esp + 0x6c]
mov byte [esp + 0x88c], 9
call fcn.0044ee5a
lea ecx, [esp + 0x80]
push ecx
lea edx, [esp + 0x20]
push 0x48df60
push edx
mov byte [esp + 0x898], 0xa
call fcn.004023e0
add esp, 8
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x48bce8
call fcn.004014f0
mov byte [esp + 0x890], 0xb
mov ebx, dword [esp + 0x20]
lea eax, [esp + 0x70]
push eax
push ecx
mov ecx, dword [ebx - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add ebx, 0xfffffff0
mov dword [esp + 0x34], esp
mov dword [esp + 0x24], esp
mov dword [esp + 0x34], ebx
call eax
cmp dword [ebx + 0xc], 0
lea edx, [ebx + 0xc]
jl 0x40dc04
cmp eax, dword [ebx]
jne 0x40dc04
mov dword [esp + 0x20], ebx
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x40dc41
mov ecx, dword [ebx + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
test eax, eax
mov dword [esp + 0x20], eax
jne 0x40dc1f
call fcn.00401430
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x20]
mov dword [ecx + 4], eax
mov eax, dword [ebx + 4]
add eax, 1
push eax
add ebx, 0x10
push ebx
push eax
add ecx, 0x10
push ecx
call fcn.00465e9e
add esp, 0x10
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
add ecx, 0x10
mov dword [edx], ecx
mov byte [esp + 0x898], 0xa
call fcn.00419cb0
mov eax, dword [esi + 0x337c]
push 0
push 0
push 0x184
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [esp + 0x74]
xor ebx, ebx
test eax, eax
jle 0x40dcb7
jmp 0x40dc80
test ebx, ebx
jl 0x40d007
cmp ebx, eax
jge 0x40d007
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx + ebx*4]
mov edx, dword [esi + 0x337c]
push eax
push 0
push 0x180
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [esp + 0x74]
add ebx, 1
cmp ebx, eax
jl 0x40dc80
push esi
call fcn.00412b30
push 0x800
lea eax, [esp + 0x84]
push 0
push eax
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea ecx, [esp + 0x88]
push ecx
push 0x48dff4
push 0x48db64
push 0x48e5e0
call edi
lea eax, [esp + 0x80]
lea ecx, [eax + 1]
lea ecx, [ecx]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x40dd00
sub eax, ecx
push eax
lea edx, [esp + 0x84]
push edx
lea ecx, [esp + 0x18]
call fcn.004018b0
mov eax, dword [esp + 0x10]
push 0x48dff4
push eax
call fcn.00466452
test eax, eax
sete al
xor ecx, ecx
test al, al
setne cl
push 0x800
lea edx, [esp + 0x8c]
push 0
push edx
mov dword [esi + 0x346c], ecx
call fcn.00467720
add esp, 0x14
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push 0x48a970
push 0x48e5ec
push 0x48e5e0
call edi
lea eax, [esp + 0x80]
lea ecx, [eax + 1]
mov edi, edi
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x40dd80
sub eax, ecx
push eax
lea ecx, [esp + 0x84]
push ecx
lea ecx, [esp + 0x18]
call fcn.004018b0
mov ebx, dword [esp + 0x10]
push ecx
mov ecx, dword [ebx - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add ebx, 0xfffffff0
mov dword [esp + 0x24], esp
mov dword [esp + 0x1c], esp
call eax
cmp dword [ebx + 0xc], 0
lea edx, [ebx + 0xc]
jl 0x40ddd3
cmp eax, dword [ebx]
jne 0x40ddd3
mov dword [esp + 0x18], ebx
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x40de10
mov ecx, dword [ebx + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
test eax, eax
mov dword [esp + 0x18], eax
jne 0x40ddee
call fcn.00401430
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
mov dword [ecx + 4], eax
mov eax, dword [ebx + 4]
add eax, 1
push eax
add ebx, 0x10
push ebx
push eax
add ecx, 0x10
push ecx
call fcn.00465e9e
add esp, 0x10
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea eax, [esi + 0x36a8]
add ecx, 0x10
push eax
mov dword [edx], ecx
call fcn.004445c0
push 0x800
lea ecx, [esp + 0x84]
push 0
push ecx
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea edx, [esp + 0x88]
push edx
push 0x48a970
push 0x48e5f8
push 0x48e5e0
call edi
lea eax, [esp + 0x80]
lea ecx, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x40de70
sub eax, ecx
push eax
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x18]
call fcn.004018b0
mov ebx, dword [esp + 0x10]
push ecx
mov ecx, dword [ebx - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add ebx, 0xfffffff0
mov dword [esp + 0x24], esp
mov dword [esp + 0x1c], esp
call eax
cmp dword [ebx + 0xc], 0
lea edx, [ebx + 0xc]
jl 0x40dec3
cmp eax, dword [ebx]
jne 0x40dec3
mov dword [esp + 0x18], ebx
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x40df00
mov ecx, dword [ebx + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
test eax, eax
mov dword [esp + 0x18], eax
jne 0x40dede
call fcn.00401430
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
mov dword [ecx + 4], eax
mov eax, dword [ebx + 4]
add eax, 1
push eax
add ebx, 0x10
push ebx
push eax
add ecx, 0x10
push ecx
call fcn.00465e9e
add esp, 0x10
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea eax, [esi + 0x3734]
add ecx, 0x10
push eax
mov dword [edx], ecx
call fcn.004445c0
push 0x800
lea ecx, [esp + 0x84]
push 0
push ecx
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea edx, [esp + 0x88]
push edx
push 0x48a970
push 0x48e604
push 0x48e5e0
call edi
lea eax, [esp + 0x80]
lea ecx, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x40df60
sub eax, ecx
push eax
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x18]
call fcn.004018b0
mov ebx, dword [esp + 0x10]
push ecx
mov ecx, dword [ebx - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add ebx, 0xfffffff0
mov dword [esp + 0x24], esp
mov dword [esp + 0x1c], esp
call eax
cmp dword [ebx + 0xc], 0
lea edx, [ebx + 0xc]
jl 0x40dfb3
cmp eax, dword [ebx]
jne 0x40dfb3
mov dword [esp + 0x18], ebx
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x40dff0
mov ecx, dword [ebx + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
test eax, eax
mov dword [esp + 0x18], eax
jne 0x40dfce
call fcn.00401430
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
mov dword [ecx + 4], eax
mov eax, dword [ebx + 4]
add eax, 1
push eax
add ebx, 0x10
push ebx
push eax
add ecx, 0x10
push ecx
call fcn.00465e9e
add esp, 0x10
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea eax, [esi + 0x37c0]
add ecx, 0x10
push eax
mov dword [edx], ecx
call fcn.004445c0
push 0x800
lea ecx, [esp + 0x84]
push 0
push ecx
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea edx, [esp + 0x88]
push edx
push 0x48a970
push 0x48e610
push 0x48e5e0
call edi
lea eax, [esp + 0x80]
lea ecx, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x40e050
sub eax, ecx
push eax
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x18]
call fcn.004018b0
mov ebx, dword [esp + 0x10]
push ecx
mov ecx, dword [ebx - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add ebx, 0xfffffff0
mov dword [esp + 0x24], esp
mov dword [esp + 0x1c], esp
call eax
cmp dword [ebx + 0xc], 0
lea edx, [ebx + 0xc]
jl 0x40e0a3
cmp eax, dword [ebx]
jne 0x40e0a3
mov dword [esp + 0x18], ebx
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x40e0e0
mov ecx, dword [ebx + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
test eax, eax
mov dword [esp + 0x18], eax
jne 0x40e0be
call fcn.00401430
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
mov dword [ecx + 4], eax
mov eax, dword [ebx + 4]
add eax, 1
push eax
add ebx, 0x10
push ebx
push eax
add ecx, 0x10
push ecx
call fcn.00465e9e
add esp, 0x10
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea eax, [esi + 0x384c]
add ecx, 0x10
push eax
mov dword [edx], ecx
call fcn.004445c0
push 0x800
lea ecx, [esp + 0x84]
push 0
push ecx
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea edx, [esp + 0x88]
push edx
push 0x48a970
push 0x48e620
push 0x48e5e0
call edi
lea eax, [esp + 0x80]
lea ecx, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x40e140
sub eax, ecx
push eax
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x18]
call fcn.004018b0
mov ebx, dword [esp + 0x10]
push ecx
mov ecx, dword [ebx - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add ebx, 0xfffffff0
mov dword [esp + 0x24], esp
mov dword [esp + 0x1c], esp
call eax
cmp dword [ebx + 0xc], 0
lea edx, [ebx + 0xc]
jl 0x40e193
cmp eax, dword [ebx]
jne 0x40e193
mov dword [esp + 0x18], ebx
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x40e1d0
mov ecx, dword [ebx + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
test eax, eax
mov dword [esp + 0x18], eax
jne 0x40e1ae
call fcn.00401430
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
mov dword [ecx + 4], eax
mov eax, dword [ebx + 4]
add eax, 1
push eax
add ebx, 0x10
push ebx
push eax
add ecx, 0x10
push ecx
call fcn.00465e9e
add esp, 0x10
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea eax, [esi + 0x38d8]
add ecx, 0x10
push eax
mov dword [edx], ecx
call fcn.004445c0
push 0x800
lea ecx, [esp + 0x84]
push 0
push ecx
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea edx, [esp + 0x88]
push edx
push 0x48de00
push 0x48db78
push 0x48e62c
call edi
lea eax, [esp + 0x80]
lea ecx, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x40e230
sub eax, ecx
push eax
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x18]
call fcn.004018b0
mov ecx, dword [esp + 0x10]
push 0x48dff4
push ecx
call fcn.00466452
add esp, 8
test eax, eax
sete al
test al, al
lea ecx, [esi + 0x3964]
push 0x4c8
je 0x40e287
call fcn.004456c3
mov edx, dword [eax + 0x20]
push 0
push 1
push 0xf1
push edx
jmp 0x40e299
call fcn.004456c3
mov eax, dword [eax + 0x20]
push 0
push 0
push 0xf1
push eax
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
call ebx
push 0x800
lea ecx, [esp + 0x84]
push 0
push ecx
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea edx, [esp + 0x88]
push edx
push 0x48de00
push 0x48e638
push 0x48e62c
call edi
lea eax, [esp + 0x80]
push eax
call fcn.004669bd
push 0x800
lea ecx, [esp + 0x88]
push 0
push ecx
mov dword [esi + 0x39d8], eax
call fcn.00467720
add esp, 0x10
push ebp
push 0x800
lea edx, [esp + 0x88]
push edx
push 0x48de00
push 0x48e644
push 0x48e62c
call edi
lea eax, [esp + 0x80]
push eax
call fcn.004669bd
push 0x800
lea ecx, [esp + 0x88]
push 0
push ecx
mov dword [esi + 0x39dc], eax
call fcn.00467720
add esp, 0x10
push ebp
push 0x800
lea edx, [esp + 0x88]
push edx
push 0x48e650
push 0x48e65c
push 0x48e62c
call edi
push ecx
lea eax, [esp + 0x84]
mov ecx, esp
mov dword [esp + 0x24], esp
push eax
call fcn.004014f0
lea ecx, [esi + 0x3f34]
push ecx
call fcn.004445c0
push 0x800
lea edx, [esp + 0x84]
push 0
push edx
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push 0x48e5a8
push 0x48e668
push 0x48e62c
call edi
lea ecx, [esp + 0x80]
push ecx
call fcn.004669bd
push 0x800
mov dword [esi + 0x39e0], eax
push 0
lea edx, [esp + 0x8c]
push edx
call fcn.00467720
add esp, 0x10
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push 0x48e674
push 0x48e678
push 0x48e62c
call edi
lea ecx, [esp + 0x80]
push ecx
call fcn.004669bd
push 0x800
lea edx, [esp + 0x88]
push 0
push edx
mov dword [esi + 0x39e8], eax
call fcn.00467720
add esp, 0x10
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push 0x48dff4
push 0x48e684
push 0x48e62c
call edi
lea ecx, [esp + 0x80]
push ecx
call fcn.004669bd
push 0x800
lea edx, [esp + 0x88]
push 0
push edx
mov dword [esi + 0x39e4], eax
call fcn.00467720
add esp, 0x10
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push 0x48dfcc
push 0x48dbc4
push 0x48e62c
call edi
lea ecx, [esp + 0x80]
push ecx
call fcn.004669bd
push 0x800
lea edx, [esp + 0x88]
push 0
push edx
mov dword [esi + 0x39ec], eax
call fcn.00467720
add esp, 0x10
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push 0x48df64
push 0x48e690
push 0x48e62c
call edi
lea ecx, [esp + 0x80]
push ecx
call fcn.004669bd
push 0x800
lea edx, [esp + 0x88]
push 0
push edx
mov dword [esi + 0x39f0], eax
call fcn.00467720
add esp, 0x10
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push str.2000
push 0x48e69c
push 0x48e62c
call edi
lea ecx, [esp + 0x80]
push ecx
call fcn.004669bd
push 0x800
lea edx, [esp + 0x88]
push 0
push edx
mov dword [esi + 0x39f4], eax
call fcn.00467720
add esp, 0x10
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push 0x48de00
push 0x48dc6c
push 0x48e6ac
call edi
lea eax, [esp + 0x80]
lea ecx, [eax + 1]
nop
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x40e580
sub eax, ecx
push eax
lea ecx, [esp + 0x84]
push ecx
lea ecx, [esp + 0x18]
call fcn.004018b0
mov edx, dword [esp + 0x10]
push 0x48dff4
push edx
call fcn.00466452
mov ecx, dword [esi + 0x4624]
add esp, 8
test eax, eax
sete al
test al, al
push 0x412
je 0x40e5d7
call fcn.004456c3
mov eax, dword [eax + 0x20]
push 0
push 1
push 0xf1
push eax
jmp 0x40e5e9
call fcn.004456c3
mov ecx, dword [eax + 0x20]
push 0
push 0
push 0xf1
push ecx
call ebx
push 0x800
lea edx, [esp + 0x84]
push 0
push edx
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push 0x48de00
push 0x48e6b8
push 0x48e6ac
call edi
lea ecx, [esp + 0x80]
push ecx
call fcn.004669bd
mov edx, dword [esi + 0x4624]
push 0x800
mov dword [edx + 0x74], eax
lea eax, [esp + 0x88]
push 0
push eax
call fcn.00467720
add esp, 0x10
push ebp
push 0x800
lea ecx, [esp + 0x88]
push ecx
push 0x48de00
push 0x48e6c4
push 0x48e6ac
call edi
lea edx, [esp + 0x80]
push edx
call fcn.004669bd
mov ecx, dword [esi + 0x4624]
push 0x800
lea edx, [esp + 0x88]
push 0
push edx
mov dword [ecx + 0x78], eax
call fcn.00467720
add esp, 0x10
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push 0x48e6d0
push 0x48e6d4
push 0x48e6ac
call edi
lea ecx, [esp + 0x80]
push ecx
call fcn.004669bd
mov edx, dword [esi + 0x4624]
push 0x800
mov dword [edx + 0x7c], eax
lea eax, [esp + 0x88]
push 0
push eax
call fcn.00467720
add esp, 0x10
push ebp
push 0x800
lea ecx, [esp + 0x88]
push ecx
push 0x48e6e0
push 0x48e6e4
push 0x48e6ac
call edi
lea edx, [esp + 0x80]
push edx
call fcn.004669bd
mov ecx, dword [esi + 0x4624]
push 0x800
push 0
lea edx, [esp + 0x8c]
mov dword [ecx + 0x80], eax
push edx
call fcn.00467720
add esp, 0x10
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push 0x48e6f0
push 0x48e6f8
push 0x48e6ac
call edi
push ecx
lea edx, [esp + 0x84]
mov ecx, esp
mov dword [esp + 0x24], esp
push edx
call fcn.004014f0
mov eax, dword [esi + 0x4624]
add eax, 0xe8
push eax
call fcn.004445c0
push 0x800
lea ecx, [esp + 0x84]
push 0
push ecx
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea edx, [esp + 0x88]
push edx
push 0x48de00
push 0x48e704
push 0x48e6ac
call edi
lea eax, [esp + 0x80]
push eax
call fcn.004669bd
mov ecx, dword [esi + 0x4624]
push 0x800
lea edx, [esp + 0x88]
push 0
push edx
mov dword [ecx + 0x84], eax
call fcn.00467720
add esp, 0x10
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push 0x48de00
push 0x48e714
push 0x48e720
call edi
lea eax, [esp + 0x80]
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x40e808
sub eax, ecx
push eax
lea ecx, [esp + 0x84]
push ecx
lea ecx, [esp + 0x18]
call fcn.004018b0
mov edx, dword [esp + 0x10]
push 0x48dff4
push edx
call fcn.00466452
add esp, 8
test eax, eax
sete al
test al, al
lea ecx, [esi + 0x3fc0]
push 0x4d9
je 0x40e85f
call fcn.004456c3
mov eax, dword [eax + 0x20]
push 0
push 1
push 0xf1
push eax
jmp 0x40e871
call fcn.004456c3
mov ecx, dword [eax + 0x20]
push 0
push 0
push 0xf1
push ecx
call ebx
push 0x800
lea edx, [esp + 0x84]
push 0
push edx
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push 0x48e72c
push 0x48dc30
push 0x48e720
call edi
lea ecx, [esp + 0x80]
push ecx
lea edx, [esp + 0x14]
push 0x48df60
push edx
call fcn.004023e0
add esp, 0xc
push 0x3a
push 0x5e
lea ebx, [esp + 0x18]
call fcn.00436880
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x4034]
sub eax, 0x10
lea ebx, [edx - 0x10]
cmp ebx, eax
mov dword [esp + 0x14], eax
je 0x40e9a0
cmp dword [eax + 0xc], 0
jl 0x40e990
mov ecx, dword [ebx]
cmp ecx, dword [eax]
jne 0x40e990
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
cmp dword [ebx + 0xc], 0
lea ecx, [ebx + 0xc]
jl 0x40e923
cmp eax, dword [ebx]
jne 0x40e923
mov dword [esp + 0x18], ebx
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x40e960
mov ecx, dword [ebx + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
test eax, eax
mov dword [esp + 0x18], eax
jne 0x40e93e
call fcn.00401430
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
mov dword [ecx + 4], eax
mov eax, dword [ebx + 4]
add eax, 1
push eax
add ebx, 0x10
push ebx
push eax
add ecx, 0x10
push ecx
call fcn.00465e9e
add esp, 0x10
mov eax, dword [esp + 0x14]
add eax, 0xc
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40e981
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x18]
add ecx, 0x10
mov dword [esi + 0x4034], ecx
jmp 0x40e9a0
mov eax, dword [edx - 0xc]
push eax
push edx
lea ecx, [esi + 0x4034]
call fcn.004018b0
push 0x800
lea edx, [esp + 0x84]
push 0
push edx
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push 0x48a970
push 0x48e738
push 0x48e720
call edi
lea ecx, [esp + 0x80]
push ecx
lea edx, [esp + 0x14]
push 0x48df60
push edx
call fcn.004023e0
mov edx, dword [esp + 0x1c]
mov eax, dword [esi + 0x4038]
sub eax, 0x10
lea ebx, [edx - 0x10]
add esp, 0xc
cmp ebx, eax
mov dword [esp + 0x18], eax
je 0x40eac0
cmp dword [eax + 0xc], 0
jl 0x40eab0
mov ecx, dword [ebx]
cmp ecx, dword [eax]
jne 0x40eab0
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
cmp dword [ebx + 0xc], 0
lea ecx, [ebx + 0xc]
jl 0x40ea43
cmp eax, dword [ebx]
jne 0x40ea43
mov dword [esp + 0x14], ebx
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x40ea80
mov ecx, dword [ebx + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
test eax, eax
mov dword [esp + 0x14], eax
jne 0x40ea5e
call fcn.00401430
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 4], eax
mov eax, dword [ebx + 4]
add eax, 1
push eax
add ebx, 0x10
push ebx
push eax
add ecx, 0x10
push ecx
call fcn.00465e9e
add esp, 0x10
mov eax, dword [esp + 0x18]
add eax, 0xc
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40eaa1
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
add ecx, 0x10
mov dword [esi + 0x4038], ecx
jmp 0x40eac0
mov eax, dword [edx - 0xc]
push eax
push edx
lea ecx, [esi + 0x4038]
call fcn.004018b0
push 0x800
lea edx, [esp + 0x84]
push 0
push edx
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push 0x48a970
push 0x48e744
push 0x48e720
call edi
lea ecx, [esp + 0x80]
push ecx
lea edx, [esp + 0x14]
push 0x48df60
push edx
call fcn.004023e0
mov edx, dword [esp + 0x1c]
mov eax, dword [esi + 0x403c]
sub eax, 0x10
lea ebx, [edx - 0x10]
add esp, 0xc
cmp ebx, eax
mov dword [esp + 0x18], eax
je 0x40ebe0
cmp dword [eax + 0xc], 0
jl 0x40ebd0
mov ecx, dword [ebx]
cmp ecx, dword [eax]
jne 0x40ebd0
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
cmp dword [ebx + 0xc], 0
lea ecx, [ebx + 0xc]
jl 0x40eb63
cmp eax, dword [ebx]
jne 0x40eb63
mov dword [esp + 0x14], ebx
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x40eba0
mov ecx, dword [ebx + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
test eax, eax
mov dword [esp + 0x14], eax
jne 0x40eb7e
call fcn.00401430
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 4], eax
mov eax, dword [ebx + 4]
add eax, 1
push eax
add ebx, 0x10
push ebx
push eax
add ecx, 0x10
push ecx
call fcn.00465e9e
add esp, 0x10
mov eax, dword [esp + 0x18]
add eax, 0xc
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40ebc1
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
add ecx, 0x10
mov dword [esi + 0x403c], ecx
jmp 0x40ebe0
mov eax, dword [edx - 0xc]
push eax
push edx
lea ecx, [esi + 0x403c]
call fcn.004018b0
push 0x800
lea edx, [esp + 0x84]
push 0
push edx
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push 0x48a970
push 0x48e750
push 0x48e720
call edi
lea ecx, [esp + 0x80]
push ecx
lea edx, [esp + 0x14]
push 0x48df60
push edx
call fcn.004023e0
mov ebx, dword [esp + 0x1c]
mov ecx, dword [ebx - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
add ebx, 0xfffffff0
add esp, 8
mov dword [esp + 0x24], esp
mov dword [esp + 0x18], esp
call edx
cmp dword [ebx + 0xc], 0
lea edx, [ebx + 0xc]
jl 0x40ec65
cmp eax, dword [ebx]
jne 0x40ec65
mov dword [esp + 0x1c], ebx
mov eax, 1
lock xadd dword [edx], eax
jmp 0x40eca2
mov ecx, dword [ebx + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
test eax, eax
mov dword [esp + 0x1c], eax
jne 0x40ec80
call fcn.00401430
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 4], eax
mov eax, dword [ebx + 4]
add eax, 1
push eax
add ebx, 0x10
push ebx
push eax
add ecx, 0x10
push ecx
call fcn.00465e9e
add esp, 0x10
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
lea eax, [esi + 0x43f4]
add ecx, 0x10
push eax
mov dword [edx], ecx
call fcn.004445c0
push 0x800
lea ecx, [esp + 0x84]
push 0
push ecx
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea edx, [esp + 0x88]
push edx
push 0x48a970
push 0x48e75c
push 0x48e720
call edi
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0x14]
push 0x48df60
push ecx
call fcn.004023e0
mov eax, dword [esp + 0x1c]
add esp, 8
add eax, 0xfffffff0
mov dword [esp + 0x24], esp
mov ebx, esp
push eax
call fcn.00402200
add esp, 4
lea edx, [esi + 0x4480]
add eax, 0x10
push edx
mov dword [ebx], eax
call fcn.004445c0
push 0x800
lea eax, [esp + 0x84]
push 0
push eax
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea ecx, [esp + 0x88]
push ecx
push 0x48a970
push 0x48e768
push 0x48e720
call edi
lea edx, [esp + 0x80]
push edx
lea eax, [esp + 0x14]
push 0x48df60
push eax
call fcn.004023e0
mov eax, dword [esp + 0x1c]
add esp, 8
add eax, 0xfffffff0
mov dword [esp + 0x24], esp
mov ebx, esp
push eax
call fcn.00402200
add esp, 4
lea ecx, [esi + 0x450c]
add eax, 0x10
push ecx
mov dword [ebx], eax
call fcn.004445c0
push 0x800
lea edx, [esp + 0x84]
push 0
push edx
call fcn.00467720
add esp, 0xc
push ebp
push 0x800
lea eax, [esp + 0x88]
push eax
push 0x48a970
push 0x48e774
push 0x48e720
call edi
lea ecx, [esp + 0x80]
push ecx
lea edx, [esp + 0x14]
push 0x48df60
push edx
call fcn.004023e0
mov ebx, dword [esp + 0x1c]
add esp, 8
add ebx, 0xfffffff0
mov dword [esp + 0x24], esp
mov edi, esp
push ebx
call fcn.00402200
add eax, 0x10
mov dword [edi], eax
add esp, 4
lea eax, [esi + 0x4598]
push eax
call fcn.004445c0
push 0
lea ecx, [esi + 0x744]
call fcn.004481ba
push 0
lea ecx, [esi + 0x7b8]
call fcn.004481ba
push 0
lea ecx, [esi + 0x120c]
call fcn.004481ba
push 0
lea ecx, [esi + 0x16ac]
call fcn.004481ba
push 0
lea ecx, [esi + 0x2040]
call fcn.004481ba
push 0
lea ecx, [esi + 0x2454]
call fcn.004481ba
push 0
lea ecx, [esi + 0x28c4]
call fcn.004481ba
push 0
lea ecx, [esi + 0x2d98]
call fcn.004481ba
push 0
lea ecx, [esi + 0x3108]
call fcn.004481ba
push 0
lea ecx, [esi + 0x3964]
call fcn.004481ba
push 0
lea ecx, [esi + 0x3fc0]
call fcn.004481ba
mov ecx, dword [esi + 0x4624]
push 0
call fcn.004481ba
mov ecx, dword [esi + 0x7d8]
mov edi, dword [sym.imp.USER32.dll_InvalidateRect]
push 1
push 0
push ecx
call edi
mov edx, dword [esi + 0x16cc]
push 1
push 0
push edx
call edi
mov eax, dword [esi + 0x3984]
push 1
push 0
push eax
call edi
lea ecx, [esp + 0x6c]
mov byte [esp + 0x88c], 9
call fcn.0044f09f
mov byte [esp + 0x88c], 7
mov eax, dword [esp + 0x28]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ef1f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x88c], 6
call fcn.0044f09f
mov byte [esp + 0x88c], 4
mov eax, dword [esp + 0x24]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ef55
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x44]
mov byte [esp + 0x88c], 2
call fcn.0044f09f
lea ecx, [esp + 0x58]
mov byte [esp + 0x88c], 1
call fcn.0044f09f
mov byte [esp + 0x88c], 0
lea ecx, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ef98
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
add ebp, 0xfffffff0
mov dword [esp + 0x88c], 0xffffffff
lea eax, [ebp + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40efc0
mov ecx, dword [ebp]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebp
call eax
mov ecx, dword [esp + 0x884]
mov dword fs:[0], ecx
pop ecx
pop edi
pop ebp
pop ebx
mov ecx, dword [esp + 0x870]
xor ecx, esp
call fcn.00465b73
add esp, 0x880
ret 4