Function at 0x523950
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x57bdc2
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x1014
call fcn.00505730
mov eax, dword [0x5d52e0]
xor eax, esp
mov dword [esp + 0x1010], eax
push ebx
push esi
push edi
mov eax, dword [0x5d52e0]
xor eax, esp
push eax
lea eax, [esp + 0x1028]
mov dword fs:[0], eax
mov ebx, ecx
mov esi, dword [ebx + 0x98]
lea eax, [ebx + 0x98]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x70], eax
cmp esi, dword [ebx + 0x9c]
je 0x523a7a
jmp 0x5239c0
cmp dword [esi + 0x28], 0
je 0x523a65
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x110]
mov ecx, dword [esi + 4]
push eax
lea edi, [esp + 0x14]
call fcn.00530ca0
add esp, 4
push 0x5a95c8
push 0x5a9974
mov ecx, edi
mov dword [esp + 0x1038], 0
call fcn.00402c50
mov ebx, edi
call fcn.004036f0
mov ebx, eax
call fcn.00403770
mov eax, dword [esp + 0x10]
cmp dword [eax - 0xc], 0
jne 0x523a25
mov dword [esp + 0x1030], 0xffffffff
jmp 0x523a49
mov eax, dword [esi + 0x28]
mov ecx, dword [esp + 0x14]
push 0
push eax
add ecx, 0x120
call fcn.00416511
mov dword [esp + 0x1030], 0xffffffff
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x523a65
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
add esi, 0x60
cmp esi, dword [ecx + 0x9c]
jne 0x5239c0
mov ebx, ecx
mov ecx, dword [ebx + 0x1dc]
mov esi, dword [ebx + 0x1d8]
cmp esi, ecx
je 0x523aab
mov eax, ecx
sub eax, ecx
sar eax, 2
lea edi, [eax*4]
push edi
push ecx
push esi
call fcn.004ffc70
add esp, 0xc
add edi, esi
mov dword [ebx + 0x1dc], edi
xor eax, eax
mov dword [esp + 0x74], eax
cmp dword [ebx + 0x1d0], eax
je 0x523ad8
mov esi, dword [esp + 0x14]
mov edx, dword [esi + 0x20]
push eax
push eax
push 0xb
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
call fcn.00521ce0
mov dword [esp + 0x74], eax
xor eax, eax
mov ebx, esi
mov ecx, dword [ebx + 0x20]
mov dword [esp + 0xfac], eax
mov dword [esp + 0xfb0], eax
mov dword [esp + 0xfb4], eax
mov dword [esp + 0xfb8], eax
lea eax, [esp + 0xfac]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [ebx + 0xac]
mov eax, dword [ebx + 0xa8]
add ebx, 0xa8
cmp eax, ecx
je 0x523b4b
mov edx, dword [esp + 0x6c]
push edx
push ecx
call fcn.0040b600
mov edi, dword [ebx + 4]
add esp, 8
mov dword [esp + 0x28], eax
mov esi, eax
cmp eax, edi
je 0x523b48
push esi
call fcn.00539950
add esi, 0x60
cmp esi, edi
jne 0x523b37
mov eax, dword [esp + 0x28]
mov dword [ebx + 4], eax
xor eax, eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
push 1
lea esi, [esp + 0x50]
mov dword [esp + 0x1034], 1
call fcn.00403cd0
mov eax, dword [esp + 0x50]
test eax, eax
je 0x523b7d
mov dword [eax], 0x32
add eax, 4
lea ecx, [esp + 0x10]
cmp ecx, eax
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x10], 0xc8
jae 0x523c1c
lea edx, [esp + 0x10]
cmp ecx, edx
ja 0x523c1c
mov esi, edx
mov edx, dword [esp + 0x54]
sub esi, ecx
sar esi, 2
mov dword [esp + 0x28], esi
cmp eax, edx
jne 0x523c11
mov esi, eax
sub esi, ecx
sar esi, 2
cmp esi, 0x3ffffffe
jbe 0x523bd0
push str.vector_T__too_long
call fcn.0051b7f8
mov edi, edx
sub edi, ecx
inc esi
sar edi, 2
cmp esi, edi
jbe 0x523c0d
mov eax, edi
shr eax, 1
mov ecx, 0x3fffffff
sub ecx, eax
cmp ecx, edi
jae 0x523bef
xor edi, edi
jmp 0x523bf1
add edi, eax
cmp edi, esi
jae 0x523bf7
mov edi, esi
push edi
lea esi, [esp + 0x50]
call fcn.00403cd0
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x28]
test eax, eax
je 0x523c84
mov esi, dword [ecx + esi*4]
mov dword [eax], esi
jmp 0x523c84
mov edx, dword [esp + 0x54]
cmp eax, edx
jne 0x523c7a
mov esi, eax
sub esi, ecx
sar esi, 2
cmp esi, 0x3ffffffe
jbe 0x523c3d
push str.vector_T__too_long
call fcn.0051b7f8
mov edi, edx
sub edi, ecx
inc esi
sar edi, 2
cmp esi, edi
jbe 0x523c7a
mov eax, edi
shr eax, 1
mov edx, 0x3fffffff
sub edx, eax
cmp edx, edi
jae 0x523c5c
xor edi, edi
jmp 0x523c5e
add edi, eax
cmp edi, esi
jae 0x523c64
mov edi, esi
push edi
lea esi, [esp + 0x50]
call fcn.00403cd0
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
test eax, eax
je 0x523c84
mov dword [eax], 0xc8
add eax, 4
lea esi, [esp + 0x10]
mov dword [esp + 0x50], eax
mov dword [esp + 0x10], 0xa
cmp esi, eax
jae 0x523d07
cmp ecx, esi
ja 0x523d07
mov edi, esi
sub edi, ecx
sar edi, 2
cmp eax, edx
jne 0x523cfc
mov esi, eax
sub esi, ecx
sar esi, 2
cmp esi, 0x3ffffffe
jbe 0x523cc3
push str.vector_T__too_long
call fcn.0051b7f8
sub edx, ecx
inc esi
sar edx, 2
cmp esi, edx
jbe 0x523cfc
mov eax, edx
mov ecx, eax
shr ecx, 1
mov edx, 0x3fffffff
sub edx, ecx
cmp edx, eax
jae 0x523ce2
xor eax, eax
jmp 0x523ce4
add eax, ecx
cmp eax, esi
jae 0x523cea
mov eax, esi
push eax
lea esi, [esp + 0x50]
call fcn.00403cd0
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
test eax, eax
je 0x523d63
mov ecx, dword [ecx + edi*4]
mov dword [eax], ecx
jmp 0x523d63
cmp eax, edx
jne 0x523d59
mov esi, eax
sub esi, ecx
sar esi, 2
cmp esi, 0x3ffffffe
jbe 0x523d24
push str.vector_T__too_long
call fcn.0051b7f8
sub edx, ecx
inc esi
sar edx, 2
cmp esi, edx
jbe 0x523d59
mov eax, edx
mov ecx, eax
shr ecx, 1
mov edx, 0x3fffffff
sub edx, ecx
cmp edx, eax
jae 0x523d43
xor eax, eax
jmp 0x523d45
add eax, ecx
cmp eax, esi
jae 0x523d4b
mov eax, esi
push eax
lea esi, [esp + 0x50]
call fcn.00403cd0
mov eax, dword [esp + 0x50]
test eax, eax
je 0x523d63
mov dword [eax], 0xa
xor edi, edi
add eax, 4
mov dword [esp + 0x50], eax
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
push 1
lea esi, [esp + 0x40]
mov byte [esp + 0x1034], 2
call fcn.00403cd0
mov eax, dword [esp + 0x40]
cmp eax, edi
je 0x523d99
mov dword [eax], 0x23a5
add eax, 4
lea ecx, [esp + 0x10]
cmp ecx, eax
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x40], eax
mov dword [esp + 0x10], 0x23a4
jae 0x523e38
lea edx, [esp + 0x10]
cmp ecx, edx
ja 0x523e38
mov esi, edx
mov edx, dword [esp + 0x44]
sub esi, ecx
sar esi, 2
mov dword [esp + 0x28], esi
cmp eax, edx
jne 0x523e2d
mov esi, eax
sub esi, ecx
sar esi, 2
cmp esi, 0x3ffffffe
jbe 0x523dec
push str.vector_T__too_long
call fcn.0051b7f8
mov edi, edx
sub edi, ecx
inc esi
sar edi, 2
cmp esi, edi
jbe 0x523e29
mov eax, edi
shr eax, 1
mov ecx, 0x3fffffff
sub ecx, eax
cmp ecx, edi
jae 0x523e0b
xor edi, edi
jmp 0x523e0d
add edi, eax
cmp edi, esi
jae 0x523e13
mov edi, esi
push edi
lea esi, [esp + 0x40]
call fcn.00403cd0
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x28]
test eax, eax
je 0x523ea0
mov esi, dword [ecx + esi*4]
mov dword [eax], esi
jmp 0x523ea0
mov edx, dword [esp + 0x44]
cmp eax, edx
jne 0x523e96
mov esi, eax
sub esi, ecx
sar esi, 2
cmp esi, 0x3ffffffe
jbe 0x523e59
push str.vector_T__too_long
call fcn.0051b7f8
mov edi, edx
sub edi, ecx
inc esi
sar edi, 2
cmp esi, edi
jbe 0x523e96
mov eax, edi
shr eax, 1
mov edx, 0x3fffffff
sub edx, eax
cmp edx, edi
jae 0x523e78
xor edi, edi
jmp 0x523e7a
add edi, eax
cmp edi, esi
jae 0x523e80
mov edi, esi
push edi
lea esi, [esp + 0x40]
call fcn.00403cd0
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
test eax, eax
je 0x523ea0
mov dword [eax], 0x23a4
add eax, 4
lea esi, [esp + 0x10]
mov dword [esp + 0x40], eax
mov dword [esp + 0x10], 0x23aa
cmp esi, eax
jae 0x523f2d
cmp ecx, esi
ja 0x523f2d
sub esi, ecx
sar esi, 2
mov dword [esp + 0x28], esi
cmp eax, edx
jne 0x523f22
mov esi, eax
sub esi, ecx
sar esi, 2
cmp esi, 0x3ffffffe
jbe 0x523ee1
push str.vector_T__too_long
call fcn.0051b7f8
mov edi, edx
sub edi, ecx
inc esi
sar edi, 2
cmp esi, edi
jbe 0x523f1e
mov eax, edi
shr eax, 1
mov ecx, 0x3fffffff
sub ecx, eax
cmp ecx, edi
jae 0x523f00
xor edi, edi
jmp 0x523f02
add edi, eax
cmp edi, esi
jae 0x523f08
mov edi, esi
push edi
lea esi, [esp + 0x40]
call fcn.00403cd0
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x28]
test eax, eax
je 0x523f91
mov esi, dword [ecx + esi*4]
mov dword [eax], esi
jmp 0x523f91
cmp eax, edx
jne 0x523f87
mov esi, eax
sub esi, ecx
sar esi, 2
cmp esi, 0x3ffffffe
jbe 0x523f4a
push str.vector_T__too_long
call fcn.0051b7f8
mov edi, edx
sub edi, ecx
inc esi
sar edi, 2
cmp esi, edi
jbe 0x523f87
mov eax, edi
shr eax, 1
mov edx, 0x3fffffff
sub edx, eax
cmp edx, edi
jae 0x523f69
xor edi, edi
jmp 0x523f6b
add edi, eax
cmp edi, esi
jae 0x523f71
mov edi, esi
push edi
lea esi, [esp + 0x40]
call fcn.00403cd0
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
test eax, eax
je 0x523f91
mov dword [eax], 0x23aa
add eax, 4
lea esi, [esp + 0x10]
mov dword [esp + 0x40], eax
mov dword [esp + 0x10], 0x23ab
cmp esi, eax
jae 0x524014
cmp ecx, esi
ja 0x524014
mov edi, esi
sub edi, ecx
sar edi, 2
cmp eax, edx
jne 0x524009
mov esi, eax
sub esi, ecx
sar esi, 2
cmp esi, 0x3ffffffe
jbe 0x523fd0
push str.vector_T__too_long
call fcn.0051b7f8
sub edx, ecx
inc esi
sar edx, 2
cmp esi, edx
jbe 0x524009
mov eax, edx
mov ecx, eax
shr ecx, 1
mov edx, 0x3fffffff
sub edx, ecx
cmp edx, eax
jae 0x523fef
xor eax, eax
jmp 0x523ff1
add eax, ecx
cmp eax, esi
jae 0x523ff7
mov eax, esi
push eax
lea esi, [esp + 0x40]
call fcn.00403cd0
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
test eax, eax
je 0x524070
mov ecx, dword [ecx + edi*4]
mov dword [eax], ecx
jmp 0x524070
cmp eax, edx
jne 0x524066
mov esi, eax
sub esi, ecx
sar esi, 2
cmp esi, 0x3ffffffe
jbe 0x524031
push str.vector_T__too_long
call fcn.0051b7f8
sub edx, ecx
inc esi
sar edx, 2
cmp esi, edx
jbe 0x524066
mov eax, edx
mov ecx, eax
shr ecx, 1
mov edx, 0x3fffffff
sub edx, ecx
cmp edx, eax
jae 0x524050
xor eax, eax
jmp 0x524052
add eax, ecx
cmp eax, esi
jae 0x524058
mov eax, esi
push eax
lea esi, [esp + 0x40]
call fcn.00403cd0
mov eax, dword [esp + 0x40]
test eax, eax
je 0x524070
mov dword [eax], 0x23ab
add eax, 4
mov dword [esp + 0x40], eax
call fcn.0052bca0
neg eax
sbb eax, eax
and eax, 6
xor edi, edi
add eax, 0x23a4
mov dword [esp + 0x78], eax
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], edi
push 1
lea esi, [esp + 0x60]
mov byte [esp + 0x1034], 3
call fcn.00403cd0
mov eax, dword [esp + 0x60]
cmp eax, edi
je 0x5240bb
mov dword [eax], 0x23bc
mov edx, dword [esp + 0x5c]
add eax, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x60], eax
mov dword [esp + 0x10], 0x23bd
cmp ecx, eax
jae 0x524146
cmp edx, ecx
ja 0x524146
mov esi, dword [esp + 0x64]
mov edi, ecx
sub edi, edx
sar edi, 2
cmp eax, esi
jne 0x52413b
mov ecx, eax
sub ecx, edx
sar ecx, 2
cmp ecx, 0x3ffffffe
jbe 0x524102
push str.vector_T__too_long
call fcn.0051b7f8
sub esi, edx
inc ecx
sar esi, 2
cmp ecx, esi
jbe 0x52413b
mov eax, esi
mov edx, eax
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, eax
jae 0x524121
xor eax, eax
jmp 0x524123
add eax, edx
cmp eax, ecx
jae 0x524129
mov eax, ecx
push eax
lea esi, [esp + 0x60]
call fcn.00403cd0
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
test eax, eax
je 0x5241a6
mov edx, dword [edx + edi*4]
mov dword [eax], edx
jmp 0x5241a6
mov esi, dword [esp + 0x64]
cmp eax, esi
jne 0x52419c
mov ecx, eax
sub ecx, edx
sar ecx, 2
cmp ecx, 0x3ffffffe
jbe 0x524167
push str.vector_T__too_long
call fcn.0051b7f8
sub esi, edx
mov edx, esi
inc ecx
sar edx, 2
cmp ecx, edx
jbe 0x52419c
mov eax, edx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, eax
jae 0x524186
xor eax, eax
jmp 0x524188
add eax, edx
cmp eax, ecx
jae 0x52418e
mov eax, ecx
push eax
lea esi, [esp + 0x60]
call fcn.00403cd0
mov eax, dword [esp + 0x60]
cmp eax, edi
je 0x5241a6
mov dword [eax], 0x23bd
add eax, 4
xor edi, edi
mov dword [esp + 0x60], eax
xor eax, eax
cmp dword [0x5ddaf8], edi
mov dword [esp + 0x18], edi
setne al
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
add eax, 0x23bc
mov dword [esp + 0x6c], eax
push 1
lea esi, [esp + 0x1c]
mov byte [esp + 0x1034], 4
call fcn.00403cd0
mov eax, dword [esp + 0x1c]
cmp eax, edi
je 0x5241f0
mov dword [eax], 0xc8
mov esi, dword [esp + 0x18]
add eax, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], 0x28
cmp ecx, eax
jae 0x524287
mov edx, ecx
cmp esi, edx
ja 0x524287
mov edi, dword [esp + 0x20]
sub ecx, esi
sar ecx, 2
mov dword [esp + 0x28], ecx
cmp eax, edi
jne 0x52427c
mov ecx, eax
sub ecx, esi
sar ecx, 2
cmp ecx, 0x3ffffffe
jbe 0x52423b
push str.vector_T__too_long
call fcn.0051b7f8
mov edx, edi
sub edx, esi
inc ecx
sar edx, 2
cmp ecx, edx
jbe 0x524278
mov eax, edx
shr eax, 1
mov esi, 0x3fffffff
sub esi, eax
cmp esi, edx
jae 0x52425a
xor edx, edx
jmp 0x52425c
add edx, eax
cmp edx, ecx
jae 0x524262
mov edx, ecx
push edx
lea esi, [esp + 0x1c]
call fcn.00403cd0
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
test eax, eax
je 0x5242ef
mov ecx, dword [esi + ecx*4]
mov dword [eax], ecx
jmp 0x5242ef
mov edi, dword [esp + 0x20]
cmp eax, edi
jne 0x5242e5
mov ecx, eax
sub ecx, esi
sar ecx, 2
cmp ecx, 0x3ffffffe
jbe 0x5242a8
push str.vector_T__too_long
call fcn.0051b7f8
mov edx, edi
sub edx, esi
inc ecx
sar edx, 2
cmp ecx, edx
jbe 0x5242e5
mov eax, edx
shr eax, 1
mov esi, 0x3fffffff
sub esi, eax
cmp esi, edx
jae 0x5242c7
xor edx, edx
jmp 0x5242c9
add edx, eax
cmp edx, ecx
jae 0x5242cf
mov edx, ecx
push edx
lea esi, [esp + 0x1c]
call fcn.00403cd0
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
test eax, eax
je 0x5242ef
mov dword [eax], 0x28
add eax, 4
lea edx, [esp + 0x10]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], 0x2d1
cmp edx, eax
jae 0x524335
mov ecx, edx
cmp esi, ecx
ja 0x524335
mov edi, edx
sub edi, esi
sar edi, 2
cmp eax, dword [esp + 0x20]
jne 0x52432a
lea eax, [esp + 0x18]
call fcn.00403af0
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
test eax, eax
je 0x524354
mov edx, dword [esi + edi*4]
mov dword [eax], edx
jmp 0x524354
cmp eax, edi
jne 0x52434a
lea eax, [esp + 0x18]
call fcn.00403af0
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
test eax, eax
je 0x524354
mov dword [eax], 0x2d1
add eax, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], 0x2d2
cmp ecx, eax
jae 0x52439a
mov edx, ecx
cmp esi, edx
ja 0x52439a
mov edi, ecx
sub edi, esi
sar edi, 2
cmp eax, dword [esp + 0x20]
jne 0x52438f
lea eax, [esp + 0x18]
call fcn.00403af0
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
test eax, eax
je 0x5243bb
mov ecx, dword [esi + edi*4]
mov dword [eax], ecx
jmp 0x5243bb
cmp eax, dword [esp + 0x20]
jne 0x5243b1
lea eax, [esp + 0x18]
call fcn.00403af0
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
test eax, eax
je 0x5243bb
mov dword [eax], 0x2d2
add eax, 4
lea edx, [esp + 0x10]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], 0x2d3
cmp edx, eax
jae 0x524401
mov ecx, edx
cmp esi, ecx
ja 0x524401
mov edi, edx
sub edi, esi
sar edi, 2
cmp eax, dword [esp + 0x20]
jne 0x5243f6
lea eax, [esp + 0x18]
call fcn.00403af0
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
test eax, eax
je 0x524422
mov edx, dword [esi + edi*4]
mov dword [eax], edx
jmp 0x524422
cmp eax, dword [esp + 0x20]
jne 0x524418
lea eax, [esp + 0x18]
call fcn.00403af0
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
test eax, eax
je 0x524422
mov dword [eax], 0x2d3
add eax, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], 0x2d4
cmp ecx, eax
jae 0x524468
mov edx, ecx
cmp esi, edx
ja 0x524468
mov edi, ecx
sub edi, esi
sar edi, 2
cmp eax, dword [esp + 0x20]
jne 0x52445d
lea eax, [esp + 0x18]
call fcn.00403af0
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
test eax, eax
je 0x524489
mov ecx, dword [esi + edi*4]
mov dword [eax], ecx
jmp 0x524489
cmp eax, dword [esp + 0x20]
jne 0x52447f
lea eax, [esp + 0x18]
call fcn.00403af0
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
test eax, eax
je 0x524489
mov dword [eax], 0x2d4
add eax, 4
lea edx, [esp + 0x10]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], 0x2d5
cmp edx, eax
jae 0x5244cf
mov ecx, edx
cmp esi, ecx
ja 0x5244cf
mov edi, edx
sub edi, esi
sar edi, 2
cmp eax, dword [esp + 0x20]
jne 0x5244c4
lea eax, [esp + 0x18]
call fcn.00403af0
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
test eax, eax
je 0x5244f0
mov edx, dword [esi + edi*4]
mov dword [eax], edx
jmp 0x5244f0
cmp eax, dword [esp + 0x20]
jne 0x5244e6
lea eax, [esp + 0x18]
call fcn.00403af0
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
test eax, eax
je 0x5244f0
mov dword [eax], 0x2d5
add eax, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], 0x2d6
cmp ecx, eax
jae 0x524536
mov edx, ecx
cmp esi, edx
ja 0x524536
mov edi, ecx
sub edi, esi
sar edi, 2
cmp eax, dword [esp + 0x20]
jne 0x52452b
lea eax, [esp + 0x18]
call fcn.00403af0
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
test eax, eax
je 0x524553
mov ecx, dword [esi + edi*4]
mov dword [eax], ecx
jmp 0x524553
cmp eax, dword [esp + 0x20]
jne 0x524549
lea eax, [esp + 0x18]
call fcn.00403af0
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x524553
mov dword [eax], 0x2d6
xor edi, edi
add eax, 4
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
lea eax, [esp + 0x2c]
mov byte [esp + 0x1030], 5
call fcn.00403af0
mov eax, dword [esp + 0x30]
cmp eax, edi
je 0x524587
mov dword [eax], 0xc8
mov ecx, dword [esp + 0x2c]
add eax, 4
lea edx, [esp + 0x10]
mov dword [esp + 0x30], eax
mov dword [esp + 0x10], 0x28
cmp edx, eax
jae 0x5245cf
cmp ecx, edx
ja 0x5245cf
mov esi, edx
sub esi, ecx
sar esi, 2
cmp eax, dword [esp + 0x34]
jne 0x5245c4
lea eax, [esp + 0x2c]
call fcn.00403af0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
cmp eax, edi
je 0x5245f0
mov edx, dword [ecx + esi*4]
mov dword [eax], edx
jmp 0x5245f0
cmp eax, dword [esp + 0x34]
jne 0x5245e6
lea eax, [esp + 0x2c]
call fcn.00403af0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
cmp eax, edi
je 0x5245f0
mov dword [eax], 0x28
add eax, 4
lea edx, [esp + 0x10]
mov dword [esp + 0x30], eax
mov dword [esp + 0x10], 0x2d7
cmp edx, eax
jae 0x524634
cmp ecx, edx
ja 0x524634
mov esi, edx
sub esi, ecx
sar esi, 2
cmp eax, dword [esp + 0x34]
jne 0x524629
lea eax, [esp + 0x2c]
call fcn.00403af0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
cmp eax, edi
je 0x524655
mov edx, dword [ecx + esi*4]
mov dword [eax], edx
jmp 0x524655
cmp eax, dword [esp + 0x34]
jne 0x52464b
lea eax, [esp + 0x2c]
call fcn.00403af0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
cmp eax, edi
je 0x524655
mov dword [eax], 0x2d7
add eax, 4
lea edx, [esp + 0x10]
mov dword [esp + 0x30], eax
mov dword [esp + 0x10], 0x2d8
cmp edx, eax
jae 0x524699
cmp ecx, edx
ja 0x524699
mov esi, edx
sub esi, ecx
sar esi, 2
cmp eax, dword [esp + 0x34]
jne 0x52468e
lea eax, [esp + 0x2c]
call fcn.00403af0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
cmp eax, edi
je 0x5246ba
mov edx, dword [ecx + esi*4]
mov dword [eax], edx
jmp 0x5246ba
cmp eax, dword [esp + 0x34]
jne 0x5246b0
lea eax, [esp + 0x2c]
call fcn.00403af0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
cmp eax, edi
je 0x5246ba
mov dword [eax], 0x2d8
add eax, 4
lea edx, [esp + 0x10]
mov dword [esp + 0x30], eax
mov dword [esp + 0x10], 0x2d9
cmp edx, eax
jae 0x5246fe
cmp ecx, edx
ja 0x5246fe
mov esi, edx
sub esi, ecx
sar esi, 2
cmp eax, dword [esp + 0x34]
jne 0x5246f3
lea eax, [esp + 0x2c]
call fcn.00403af0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
cmp eax, edi
je 0x52471f
mov edx, dword [ecx + esi*4]
mov dword [eax], edx
jmp 0x52471f
cmp eax, dword [esp + 0x34]
jne 0x524715
lea eax, [esp + 0x2c]
call fcn.00403af0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
cmp eax, edi
je 0x52471f
mov dword [eax], 0x2d9
add eax, 4
lea edx, [esp + 0x10]
mov dword [esp + 0x30], eax
mov dword [esp + 0x10], 0x2da
cmp edx, eax
jae 0x524763
cmp ecx, edx
ja 0x524763
mov esi, edx
sub esi, ecx
sar esi, 2
cmp eax, dword [esp + 0x34]
jne 0x524758
lea eax, [esp + 0x2c]
call fcn.00403af0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
cmp eax, edi
je 0x524784
mov edx, dword [ecx + esi*4]
mov dword [eax], edx
jmp 0x524784
cmp eax, dword [esp + 0x34]
jne 0x52477a
lea eax, [esp + 0x2c]
call fcn.00403af0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
cmp eax, edi
je 0x524784
mov dword [eax], 0x2da
add eax, 4
lea edx, [esp + 0x10]
mov dword [esp + 0x30], eax
mov dword [esp + 0x10], 0x2db
cmp edx, eax
jae 0x5247c8
cmp ecx, edx
ja 0x5247c8
mov esi, edx
sub esi, ecx
sar esi, 2
cmp eax, dword [esp + 0x34]
jne 0x5247bd
lea eax, [esp + 0x2c]
call fcn.00403af0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
cmp eax, edi
je 0x5247e5
mov ecx, dword [ecx + esi*4]
mov dword [eax], ecx
jmp 0x5247e5
cmp eax, dword [esp + 0x34]
jne 0x5247db
lea eax, [esp + 0x2c]
call fcn.00403af0
mov eax, dword [esp + 0x30]
cmp eax, edi
je 0x5247e5
mov dword [eax], 0x2db
add eax, 4
mov dword [esp + 0x30], eax
lea eax, [esp + 0x28]
lea edi, [esp + 0x2c]
mov dword [esp + 0x28], 0x2dc
call fcn.00403640
xor eax, eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov byte [esp + 0x1030], 6
lea eax, [esp + 0x28]
lea edi, [esp + 0x7c]
mov dword [esp + 0x28], 0x12
call fcn.00403640
lea eax, [esp + 0x28]
mov dword [esp + 0x28], 0x10
call fcn.00403640
mov esi, dword [esp + 0x14]
cmp dword [esi + 0x118], 0x1fad
jne 0x525279
lea ecx, [esp + 0x4c]
push ecx
mov edx, esi
mov eax, dword [edx + 0x110]
push 0
push eax
mov eax, 0xd57
xor edx, edx
xor ecx, ecx
lea esi, [esp + 0xfc8]
call fcn.00539bd0
mov ecx, eax
mov byte [esp + 0x1030], 7
call fcn.0040b230
mov edx, esi
push edx
mov byte [esp + 0x1034], 6
call fcn.00539950
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 0x110]
push 0
push eax
mov eax, 0xd4f
xor edx, edx
mov ecx, 0x1f47
lea esi, [esp + 0x214]
call fcn.00539440
mov ecx, eax
mov byte [esp + 0x1030], 8
call fcn.0040b230
mov eax, esi
push eax
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push eax
mov eax, 0xd56
xor edx, edx
xor ecx, ecx
lea esi, [esp + 0x8d0]
call fcn.005394c0
mov ecx, eax
mov byte [esp + 0x1030], 9
call fcn.0040b230
mov ecx, esi
push ecx
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push eax
mov eax, 0xd4b
mov edx, 0x23ad
mov ecx, 0x1f5a
lea esi, [esp + 0x2d0]
call fcn.005394c0
mov ecx, eax
mov byte [esp + 0x1030], 0xa
call fcn.0040b230
mov edx, esi
push edx
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push eax
mov eax, 0xd48
xor edx, edx
xor ecx, ecx
lea esi, [esp + 0xed0]
call fcn.005394c0
mov ecx, eax
mov byte [esp + 0x1030], 0xb
call fcn.0040b230
mov eax, esi
push eax
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push eax
mov eax, 0xd56
xor edx, edx
xor ecx, ecx
lea esi, [esp + 0x390]
call fcn.005394c0
mov ecx, eax
mov byte [esp + 0x1030], 0xc
call fcn.0040b230
mov ecx, esi
push ecx
mov byte [esp + 0x1034], 6
call fcn.00539950
mov ecx, dword [esp + 0x78]
mov eax, dword [edi + 0x110]
lea edx, [esp + 0x3c]
push edx
push ecx
push eax
mov eax, 0xd60
xor edx, edx
mov ecx, 0x1f51
lea esi, [esp + 0x998]
call fcn.00539bd0
mov ecx, eax
mov byte [esp + 0x1030], 0xd
call fcn.0040b230
mov edx, esi
push edx
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push eax
mov eax, 0xd48
xor edx, edx
xor ecx, ecx
lea esi, [esp + 0x450]
call fcn.005394c0
mov ecx, eax
mov byte [esp + 0x1030], 0xe
call fcn.0040b230
mov eax, esi
push eax
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push 0
push eax
mov eax, 0xd4f
xor edx, edx
mov ecx, 0x1f45
lea esi, [esp + 0xc94]
call fcn.00539440
mov ecx, eax
mov byte [esp + 0x1030], 0xf
call fcn.0040b230
mov ecx, esi
push ecx
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push eax
mov eax, 0xd56
xor edx, edx
xor ecx, ecx
lea esi, [esp + 0x510]
call fcn.005394c0
mov ecx, eax
mov byte [esp + 0x1030], 0x10
call fcn.0040b230
mov edx, esi
push edx
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push eax
mov eax, 0xd4b
mov edx, 0x23bb
mov ecx, 0x1f5b
lea esi, [esp + 0xa50]
call fcn.005394c0
mov ecx, eax
mov byte [esp + 0x1030], 0x11
call fcn.0040b230
mov eax, esi
push eax
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push eax
mov eax, 0xd48
xor edx, edx
xor ecx, ecx
lea esi, [esp + 0x5d0]
call fcn.005394c0
mov ecx, eax
mov byte [esp + 0x1030], 0x12
call fcn.0040b230
mov ecx, esi
push ecx
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push eax
mov eax, 0xd56
xor edx, edx
xor ecx, ecx
lea esi, [esp + 0x90]
call fcn.005394c0
mov ecx, eax
mov byte [esp + 0x1030], 0x13
call fcn.0040b230
mov edx, esi
push edx
mov byte [esp + 0x1034], 6
call fcn.00539950
mov edx, dword [esp + 0x6c]
mov eax, dword [edi + 0x110]
lea ecx, [esp + 0x5c]
push ecx
push edx
push eax
mov eax, 0xd60
xor edx, edx
mov ecx, 0x1f52
lea esi, [esp + 0xe18]
call fcn.00539bd0
mov ecx, eax
mov byte [esp + 0x1030], 0x14
call fcn.0040b230
mov eax, esi
push eax
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push eax
mov eax, 0xd48
xor edx, edx
xor ecx, ecx
lea esi, [esp + 0x690]
call fcn.005394c0
mov ecx, eax
mov byte [esp + 0x1030], 0x15
call fcn.0040b230
mov ecx, esi
push ecx
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push 0
push eax
mov eax, 0xd4f
xor edx, edx
mov ecx, 0x1f48
lea esi, [esp + 0xb14]
call fcn.00539440
mov ecx, eax
mov byte [esp + 0x1030], 0x16
call fcn.0040b230
mov edx, esi
push edx
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push eax
mov eax, 0xd56
xor edx, edx
xor ecx, ecx
lea esi, [esp + 0x750]
call fcn.005394c0
mov ecx, eax
mov byte [esp + 0x1030], 0x17
call fcn.0040b230
mov eax, esi
push eax
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push eax
mov eax, 0xd4b
mov edx, 0x23a6
mov ecx, 0x1f5d
lea esi, [esp + 0xd50]
call fcn.005394c0
mov ecx, eax
mov byte [esp + 0x1030], 0x18
call fcn.0040b230
mov ecx, esi
push ecx
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push eax
mov eax, 0xd48
xor edx, edx
xor ecx, ecx
lea esi, [esp + 0x810]
call fcn.005394c0
mov ecx, eax
mov byte [esp + 0x1030], 0x19
call fcn.0040b230
mov edx, esi
push edx
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push eax
mov eax, 0xd56
xor edx, edx
xor ecx, ecx
lea esi, [esp + 0xf0]
call fcn.005394c0
mov ecx, eax
mov byte [esp + 0x1030], 0x1a
call fcn.0040b230
mov eax, esi
push eax
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
lea ecx, [esp + 0x18]
push ecx
push 0xfd8
push eax
mov eax, 0xd59
mov edx, 0x23a7
mov ecx, 0x1f4e
lea esi, [esp + 0x158]
call fcn.00539bd0
mov ecx, eax
mov byte [esp + 0x1030], 0x1b
call fcn.0040b230
mov edx, esi
push edx
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push eax
mov eax, 0xd48
xor edx, edx
xor ecx, ecx
lea esi, [esp + 0x1b0]
call fcn.005394c0
mov ecx, eax
mov byte [esp + 0x1030], 0x1c
call fcn.0040b230
mov eax, esi
push eax
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push 0
push eax
mov eax, 0xd4f
xor edx, edx
mov ecx, 0x1f49
lea esi, [esp + 0x274]
call fcn.00539440
mov ecx, eax
mov byte [esp + 0x1030], 0x1d
call fcn.0040b230
mov ecx, esi
push ecx
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push eax
mov eax, 0xd56
xor edx, edx
xor ecx, ecx
lea esi, [esp + 0x330]
call fcn.005394c0
mov ecx, eax
mov byte [esp + 0x1030], 0x1e
call fcn.0040b230
mov edx, esi
push edx
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push eax
mov eax, 0xd4b
mov edx, 0x23a8
mov ecx, 0x1f5e
lea esi, [esp + 0x3f0]
call fcn.005394c0
mov ecx, eax
mov byte [esp + 0x1030], 0x1f
call fcn.0040b230
mov eax, esi
push eax
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push eax
mov eax, 0xd48
xor edx, edx
xor ecx, ecx
lea esi, [esp + 0x4b0]
call fcn.005394c0
mov byte [esp + 0x1030], 0x20
mov ecx, eax
call fcn.0040b230
mov ecx, esi
push ecx
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push eax
mov eax, 0xd56
xor edx, edx
xor ecx, ecx
lea esi, [esp + 0x570]
call fcn.005394c0
mov ecx, eax
mov byte [esp + 0x1030], 0x21
call fcn.0040b230
mov edx, esi
push edx
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
lea ecx, [esp + 0x18]
push ecx
push 0xfd8
push eax
mov eax, 0xd59
mov edx, 0x23a9
mov ecx, 0x1f4f
lea esi, [esp + 0x638]
call fcn.00539bd0
mov ecx, eax
mov byte [esp + 0x1030], 0x22
call fcn.0040b230
mov edx, esi
push edx
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push eax
mov eax, 0xd48
xor edx, edx
xor ecx, ecx
lea esi, [esp + 0x6f0]
call fcn.005394c0
mov ecx, eax
mov byte [esp + 0x1030], 0x23
call fcn.0040b230
mov eax, esi
push eax
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push 0
push eax
mov eax, 0xd4f
xor edx, edx
mov ecx, 0x1f46
lea esi, [esp + 0x7b4]
call fcn.00539440
mov ecx, eax
mov byte [esp + 0x1030], 0x24
call fcn.0040b230
mov ecx, esi
push ecx
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push eax
mov eax, 0xd56
xor edx, edx
xor ecx, ecx
lea esi, [esp + 0x870]
call fcn.005394c0
mov ecx, eax
mov byte [esp + 0x1030], 0x25
call fcn.0040b230
mov byte [esp + 0x1030], 6
mov edx, esi
push edx
call fcn.00539950
mov eax, dword [edi + 0x110]
lea ecx, [esp + 0x7c]
push ecx
push 0x2cf
push eax
mov eax, 0xd4f
xor edx, edx
mov ecx, 0x1f44
lea esi, [esp + 0x938]
call fcn.00539bd0
mov ecx, eax
mov byte [esp + 0x1030], 0x26
call fcn.0040b230
mov edx, esi
push edx
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push 0xff1
push eax
mov eax, 0xd5b
mov edx, 0x23c5
mov ecx, 0x1f50
lea esi, [esp + 0x9f4]
call fcn.00539440
mov ecx, eax
mov byte [esp + 0x1030], 0x27
call fcn.0040b230
mov eax, esi
push eax
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push eax
mov eax, 0xd48
xor edx, edx
xor ecx, ecx
lea esi, [esp + 0xab0]
call fcn.005394c0
mov ecx, eax
mov byte [esp + 0x1030], 0x28
call fcn.0040b230
mov ecx, esi
push ecx
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push 0
push eax
mov eax, 0xd4f
xor edx, edx
mov ecx, 0x1f4a
lea esi, [esp + 0xb74]
call fcn.00539440
mov ecx, eax
mov byte [esp + 0x1030], 0x29
call fcn.0040b230
mov edx, esi
push edx
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push eax
mov eax, 0xd56
xor edx, edx
xor ecx, ecx
lea esi, [esp + 0xc30]
call fcn.005394c0
mov ecx, eax
mov byte [esp + 0x1030], 0x2a
call fcn.0040b230
mov byte [esp + 0x1030], 6
mov eax, esi
push eax
call fcn.00539950
mov eax, dword [edi + 0x110]
push eax
mov eax, 0xd4b
mov edx, 0x23ac
mov ecx, 0x1f5c
lea esi, [esp + 0xcf0]
call fcn.005394c0
mov ecx, eax
mov byte [esp + 0x1030], 0x2b
call fcn.0040b230
mov ecx, esi
push ecx
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push eax
mov eax, 0xd48
xor edx, edx
xor ecx, ecx
lea esi, [esp + 0xdb0]
call fcn.005394c0
mov ecx, eax
mov byte [esp + 0x1030], 0x2c
call fcn.0040b230
mov edx, esi
push edx
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
push eax
mov eax, 0xd56
xor edx, edx
xor ecx, ecx
lea esi, [esp + 0xe70]
call fcn.005394c0
mov ecx, eax
mov byte [esp + 0x1030], 0x2d
call fcn.0040b230
mov eax, esi
push eax
mov byte [esp + 0x1034], 6
call fcn.00539950
mov eax, dword [edi + 0x110]
lea ecx, [esp + 0x2c]
push ecx
push 0xfd8
push eax
mov eax, 0xd59
mov edx, 0x23ac
mov ecx, 0x1f4d
lea esi, [esp + 0xf38]
call fcn.00539bd0
mov ecx, eax
mov byte [esp + 0x1030], 0x2e
call fcn.0040b230
mov edx, esi
push edx
mov byte [esp + 0x1034], 6
call fcn.00539950
mov edi, dword [edi + 0x110]
push edi
mov eax, 0xd48
xor edx, edx
xor ecx, ecx
lea esi, [esp + 0xbd0]
call fcn.005394c0
mov ecx, eax
mov byte [esp + 0x1030], 0x2f
call fcn.0040b230
mov eax, esi
push eax
mov byte [esp + 0x1034], 6
call fcn.00539950
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x70]
push 1
push ecx
call fcn.00536c50
mov eax, dword [ebx + 4]
mov ecx, dword [ebx]
push eax
push ecx
lea edx, [esp + 0x74]
push edx
push ebx
call fcn.0040b2e0
cmp dword [esi + 0x118], 0x1fad
jne 0x52549e
xor ebx, ebx
push 0x1f47
mov ecx, esi
mov dword [esp + 0xfa0], ebx
mov dword [esp + 0xfa4], ebx
mov dword [esp + 0xfa8], ebx
mov dword [esp + 0xfac], ebx
call fcn.0041a9d4
mov edi, eax
cmp edi, ebx
je 0x52530c
mov eax, dword [edi + 0x20]
cmp eax, ebx
je 0x52530c
lea ecx, [esp + 0xf9c]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [edi + 0x20]
lea edx, [esp + 0xf9c]
push edx
push eax
call dword [sym.imp.USER32.dll_GetParent]
push eax
call fcn.004126d5
mov ecx, eax
call fcn.0041846b
push 0x1f45
mov ecx, esi
call fcn.0041a9d4
mov edi, eax
cmp edi, ebx
je 0x5253d5
mov eax, dword [edi + 0x20]
cmp eax, ebx
je 0x5253d5
lea ecx, [esp + 0xf8c]
push ecx
push eax
mov dword [esp + 0xf94], ebx
mov dword [esp + 0xf98], ebx
mov dword [esp + 0xf9c], ebx
mov dword [esp + 0xfa0], ebx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [edi + 0x20]
lea edx, [esp + 0xf8c]
push edx
push eax
call dword [sym.imp.USER32.dll_GetParent]
push eax
call fcn.004126d5
mov ecx, eax
call fcn.0041846b
mov eax, dword [esp + 0xfa4]
sub eax, dword [esp + 0xf94]
push ebx
sub eax, dword [esp + 0xfa0]
lea ecx, [esp + 0xf90]
add eax, dword [esp + 0xf90]
cdq
sub eax, edx
sar eax, 1
push eax
push ecx
call dword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [esp + 0xf90]
mov edx, dword [esp + 0xf98]
mov ecx, dword [esp + 0xf8c]
push 1
sub edx, eax
push edx
mov edx, dword [esp + 0xf9c]
sub edx, ecx
push edx
push eax
push ecx
mov ecx, edi
call fcn.0041ab75
push 0x1f46
mov ecx, esi
call fcn.0041a9d4
mov edi, eax
cmp edi, ebx
je 0x52549e
mov eax, dword [edi + 0x20]
cmp eax, ebx
je 0x52549e
lea ecx, [esp + 0xf8c]
push ecx
push eax
mov dword [esp + 0xf94], ebx
mov dword [esp + 0xf98], ebx
mov dword [esp + 0xf9c], ebx
mov dword [esp + 0xfa0], ebx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [edi + 0x20]
lea edx, [esp + 0xf8c]
push edx
push eax
call dword [sym.imp.USER32.dll_GetParent]
push eax
call fcn.004126d5
mov ecx, eax
call fcn.0041846b
mov eax, dword [esp + 0xfa4]
sub eax, dword [esp + 0xf94]
push ebx
sub eax, dword [esp + 0xfa0]
lea ecx, [esp + 0xf90]
add eax, dword [esp + 0xf90]
cdq
sub eax, edx
sar eax, 1
push eax
push ecx
call dword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [esp + 0xf90]
mov edx, dword [esp + 0xf98]
mov ecx, dword [esp + 0xf8c]
push 1
sub edx, eax
push edx
mov edx, dword [esp + 0xf9c]
sub edx, ecx
push edx
push eax
push ecx
mov ecx, edi
call fcn.0041ab75
cmp dword [esi + 0x1d0], 0
mov edi, dword [esi + 0xc4]
mov ebx, dword [esi + 0xc8]
je 0x5254ef
cmp dword [esp + 0x74], 0
mov esi, dword [esi + 0xd0]
je 0x5254c2
xor esi, esi
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x20]
push 0
push 1
push 0xb
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [esp + 0x14]
push ebx
mov ecx, edi
call fcn.00521dc0
mov ebx, esi
mov esi, dword [esp + 0x14]
call fcn.005313b0
jmp 0x525503
push 6
push ebx
push edi
push 0
push 0
push 0x5d8620
mov ecx, esi
call fcn.0041ac47
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x14]
mov esi, dword [edx]
mov eax, dword [eax + 0x9c]
cmp esi, eax
je 0x525651
jmp 0x525520
mov eax, dword [esi + 0x28]
test eax, eax
je 0x52563e
mov ecx, dword [esi + 4]
cmp ecx, 0xe2f
je 0x525628
cmp ecx, 0xe31
je 0x525628
cmp ecx, 0xe35
je 0x525628
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x110]
push eax
lea edi, [esp + 0x14]
call fcn.00530ca0
add esp, 4
push 0x5a95c8
push 0x5a9974
mov ecx, edi
mov byte [esp + 0x1038], 0x30
call fcn.00402c50
mov ebx, edi
call fcn.004036f0
mov ebx, eax
call fcn.00403770
mov eax, dword [esp + 0x10]
cmp dword [eax - 0xc], 0
jne 0x5255c4
add eax, 0xfffffff0
mov byte [esp + 0x1030], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x52563e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x52563e
mov ecx, dword [esi + 0x28]
push 0x58025c
call fcn.00419148
mov ecx, dword [esp + 0x10]
push 0
push 0
test eax, eax
mov eax, dword [esi + 0x28]
push ecx
je 0x5255fa
mov edx, dword [eax + 0x20]
push 0
push 0
push 0x406
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
push eax
call fcn.004126d5
mov ecx, dword [esp + 0x20]
push eax
add ecx, 0x120
call fcn.00416427
mov byte [esp + 0x1030], 6
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x5255b2
mov ecx, dword [esp + 0x14]
push 0
push 0
push 0xffffffffffffffff
push eax
add ecx, 0x120
call fcn.00416427
mov ecx, dword [esp + 0x14]
add esi, 0x60
cmp esi, dword [ecx + 0x9c]
jne 0x525520
mov edi, dword [esp + 0x14]
cmp dword [edi + 0x118], 0x1fad
jne 0x52575c
mov edx, dword [edi + 0x20]
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0x31
push edx
call ebx
push eax
call fcn.004188f6
mov edx, dword [eax + 4]
lea ecx, [esp + 0xfbc]
push ecx
push 0x5c
push edx
call dword [sym.imp.GDI32.dll_GetObjectW]
lea eax, [esp + 0xfbc]
push eax
mov dword [esp + 0xfd0], 0x2bc
lea esi, [edi + 0x1c8]
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
push eax
mov ecx, esi
call fcn.0041890a
push 0x1f5a
mov ecx, edi
call fcn.0041a9d4
test eax, eax
je 0x5256e2
mov eax, dword [eax + 0x20]
test eax, eax
je 0x5256e2
test esi, esi
jne 0x5256d7
xor ecx, ecx
jmp 0x5256da
mov ecx, dword [esi + 4]
push 1
push ecx
push 0x30
push eax
call ebx
push 0x1f5d
mov ecx, edi
call fcn.0041a9d4
test eax, eax
je 0x52570c
mov eax, dword [eax + 0x20]
test eax, eax
je 0x52570c
test esi, esi
jne 0x525701
xor ecx, ecx
jmp 0x525704
mov ecx, dword [esi + 4]
push 1
push ecx
push 0x30
push eax
call ebx
push 0x1f5e
mov ecx, edi
call fcn.0041a9d4
test eax, eax
je 0x525736
mov eax, dword [eax + 0x20]
test eax, eax
je 0x525736
test esi, esi
jne 0x52572b
xor ecx, ecx
jmp 0x52572e
mov ecx, dword [esi + 4]
push 1
push ecx
push 0x30
push eax
call ebx
push 0x1f5c
mov ecx, edi
call fcn.0041a9d4
test eax, eax
je 0x52575c
mov eax, dword [eax + 0x20]
test eax, eax
je 0x52575c
test esi, esi
je 0x525754
mov esi, dword [esi + 4]
push 1
push esi
push 0x30
push eax
call ebx
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x52576d
push eax
call fcn.0040c6ec
add esp, 4
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x52577e
push eax
call fcn.0040c6ec
add esp, 4
mov eax, dword [esp + 0x18]
test eax, eax
je 0x52578f
push eax
call fcn.0040c6ec
add esp, 4
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x5257a0
push eax
call fcn.0040c6ec
add esp, 4
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x5257b1
push eax
call fcn.0040c6ec
add esp, 4
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x5257c2
push eax
call fcn.0040c6ec
add esp, 4
mov ecx, dword [esp + 0x1028]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1010]
xor ecx, esp
call fcn.004ff57c
mov esp, ebp
pop ebp
ret