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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1006f5c6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1d8
movdqa xmm0, xmmword [0x10007fd0]
lea eax, [esp + 0x1b8]
push ebx
push esi
push edi
mov esi, edx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x70], esi
lea ecx, [esp + 0x74]
push dword [esp + 0x70]
xor ebx, ebx
mov dword [esp + 0x2c], 9
push eax
lea eax, [esp + 0x1bc]
mov dword [esp + 0x30], 0xffffffff
push eax
mov dword [esp + 0x34], 0x8a59c176
push ebx
movdqu xmmword [esp + 0x1c4], xmm0
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebx
call fcn.100346ee
xor edi, edi
inc edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x28], 0x7525d2d9
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x28], 0xfffffff7
mov dword [esp + 0x24], 2
inc dword [esp + 0x24]
cmp dword [esp + 0x74], ebx
je 0x10042124
push dword [esp + 0x74]
call fcn.10055371
pop ecx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov eax, dword [0x11054160]
test al, 1
jne 0x10042153
or eax, edi
mov dword [0x11054160], eax
mov dword [esp + 0x1ec], ebx
call fcn.10043c82
push 0x1006fceb
call fcn.10055276
or dword [esp + 0x1f0], 0xffffffff
pop ecx
mov dword [esp + 0x18], 0x4543beb7
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x24], 0x43af7806
mov dword [esp + 0x28], 0xfff9
mov dword [esp + 0x10], ebx
jmp 0x1004218c
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1a0], 0xfffffff8
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x10042179
mov dword [esp + 0x10], ebx
jmp 0x100421ac
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x13c], 0xfffffff6
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x10042199
mov eax, dword [esp + 0x18]
xor edx, edx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
cmp eax, ecx
setge dl
mov dword [esp + 0x1a4], edx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], edx
xor edx, edx
cmp dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
setg dl
xor ecx, ecx
cmp edx, eax
setne cl
imul ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x10042204
mov eax, dword [esp + 0x1a4]
cmp dword [esp + 0x1a4], ebx
jne 0x10042215
mov eax, ebx
cmp dword [esp + 0x18], ebx
je 0x10042217
mov eax, edi
mov dword [esp + 0x24], eax
xor edx, edx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x13c]
cmp ecx, eax
push 5
setge dl
lea ecx, [esp + 0xf4]
imul eax, dword [esp + 0x50], 0x2710
mov dword [esp + 0x2c], edx
add eax, esi
mov dword [esp + 0x84], eax
mov dword [esp + 0x18], 0x189
mov dword [esp + 0x2c], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x28], 0xfc36fe5a
pop eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x18], 0x4adca1a1
mov dword [esp + 0x28], 6
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], edi
push edi
call fcn.1000b098
mov dword [esp + 0x20], 0x6a426232
mov dword [esp + 0x20], ebx
jmp 0x100422ab
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0xf0]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edi
jl 0x10042298
mov ecx, dword [esp + 0x24]
mov edx, edi
mov eax, dword [esp + 0x14]
dec dword [esp + 0x24]
cmp eax, ecx
mov eax, dword [esp + 0x14]
cmovne edx, ebx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x24]
setg cl
xor edx, edx
mov dword [esp + 0x20], ecx
mov ecx, 0xffff70a7
sub ecx, eax
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x20], ecx
setge dl
xor ecx, ecx
cmp edx, eax
setge cl
sub ecx, 2
cmp ecx, dword [esp + 0x34]
jne 0x10042307
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x28], eax
cmp dword [esp + 0x14], ebx
je 0x1004231d
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
xor edx, edx
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
cmp eax, ecx
mov eax, dword [esp + 0x28]
setg dl
xor ecx, ecx
cmp eax, edx
setl cl
xor edx, edx
sub ecx, dword [esp + 0x14]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
cmp eax, ecx
setne dl
cmp dword [esp + 0xf0], 0
mov dword [esp + 0x10], edx
je 0x10042386
push dword [esp + 0xf0]
call fcn.10055371
pop ecx
mov dword [esp + 0xf0], ebx
mov dword [esp + 0xf4], ebx
mov dword [esp + 0xf8], ebx
lea eax, [esp + 0x80]
push eax
call fcn.10043cef
mov esi, dword [eax]
test esi, esi
je 0x10042595
mov dword [esp + 0x20], 7
mov dword [esp + 0x40], 2
push 8
pop eax
mov dword [esp + 0x14], eax
push 0xfffffffffffffff9
pop ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x28], 0xb641b44a
mov dword [esp + 0x28], 0xa71a6e48
mov dword [esp + 0x28], eax
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x20]
add eax, dword [esp + 0x20]
je 0x10042457
mov eax, dword [esp + 0x14]
xor edx, edx
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
cmp eax, ecx
setg dl
sub edx, dword [esp + 0x20]
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x14], 0xffffffff
jbe 0x10042423
mov edx, ebx
cmp dword [esp + 0x14], ebx
je 0x10042425
mov edx, edi
mov dword [esp + 0x40], 0x9cc14173
xor ecx, ecx
mov eax, dword [esp + 0x20]
cmp edx, eax
setg cl
xor edx, edx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x40]
cmp eax, ecx
mov ecx, edi
setne dl
mov dword [esp + 0x28], edx
cmp dword [esp + 0x28], ebx
jne 0x10042459
mov ecx, ebx
mov eax, dword [esp + 0x14]
add eax, ecx
mov dword [esp + 0x100], esi
mov dword [esp + 0x28], eax
lea ecx, [esp + 0x144]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x14], 0xfffffffa
push edi
call fcn.1000b098
mov dword [esp + 0x1ec], edi
lea ecx, [esp + 0x168]
mov dword [esp + 0x24], 9
push edi
call fcn.1000b098
mov dword [esp + 0x28], 0xcff2fd6b
mov dword [esp + 0x10], ebx
jmp 0x100424c3
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x144]
mov dword [eax + ecx*4], 0xe41b66ba
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x100424ad
mov dword [esp + 0x10], ebx
jmp 0x100424e1
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x168]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x100424cf
cmp dword [esp + 0x20], ebx
jne 0x100424f9
mov eax, dword [esp + 0x24]
inc dword [esp + 0x24]
test eax, eax
je 0x100424fb
mov ebx, edi
mov eax, dword [esp + 0x144]
xor ecx, ecx
mov edx, dword [eax]
test edx, edx
sete cl
xor eax, eax
sub ecx, edx
cmp edx, ecx
mov edx, dword [esp + 0x14]
setne al
xor ecx, ecx
sub edx, eax
imul edx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
cmp eax, edx
setge cl
xor eax, eax
cmp ecx, 0x719d8726
setge al
xor edx, edx
cmp ebx, eax
sete dl
imul edx, dword [esp + 0x20]
mov eax, dword [esp + 0x144]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
mov dword [eax], edx
mov eax, dword [esp + 0x14]
cmp edx, eax
setne cl
imul eax, ecx, 0xb1af
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x168], 0
mov dword [esp + 0x14], edi
je 0x10042583
push dword [esp + 0x168]
call fcn.10055371
pop ecx
push dword [esp + 0x144]
call fcn.10055371
pop ecx
jmp 0x100439ad
mov dword [esp + 0x10], 0xffffffff
push 3
pop esi
cmp dword [esp + 0x10], ebx
je 0x1004290f
mov dword [esp + 0x28], 0x1808
cmp dword [esp + 0x28], 0x12fe
jge 0x100427d8
push 0x10baeebc
push 0x10007a34
call fcn.100550ab
mov eax, dword [0x10baeebc]
mov esi, 0x10b0fe80
mov dword [esp + 0x30], ebx
pop ecx
pop ecx
test eax, eax
jle 0x10042601
mov edi, esi
push edi
push 0x10007a34
call fcn.100550ab
mov eax, dword [0x10baeebc]
inc ebx
pop ecx
add edi, 4
pop ecx
cmp ebx, eax
jl 0x100425e5
xor ebx, ebx
lea edx, [eax*4 + 0x10b0fe80]
mov byte [esp + 0x114], bl
push dword [esp + 0x114]
mov eax, edx
mov ecx, esi
sub eax, esi
sar eax, 2
push eax
call fcn.10034cb0
mov edi, dword [0x10baeebc]
pop ecx
pop ecx
test edi, edi
jle 0x1004267a
mov ecx, dword [0x10baeebc]
xor edi, edi
inc edi
mov ebx, edi
cmp edi, ecx
jge 0x1004266d
mov eax, dword [ebx*4 + 0x10b0fe80]
mov ecx, 0x11054098
sub eax, dword [esi]
mov dword [esp + 0xfc], eax
lea eax, [esp + 0xfc]
push eax
call fcn.1002f3a0
mov ecx, dword [0x10baeebc]
inc ebx
cmp ebx, ecx
jl 0x10042640
inc edi
add esi, 4
lea eax, [edi - 1]
cmp eax, ecx
jl 0x1004263a
xor ebx, ebx
mov ecx, dword [0x1105409c]
mov edx, ebx
mov esi, dword [0x11054098]
sub ecx, esi
sar ecx, 2
test ecx, ecx
je 0x100426a0
mov eax, dword [esi + edx*4]
inc dword [eax*4 + 0x10b78390]
inc edx
cmp edx, ecx
jb 0x10042691
mov ecx, 0x10b78394
mov eax, dword [ecx - 4]
add dword [ecx], eax
add ecx, 4
cmp ecx, 0x10b7e15c
jle 0x100426a5
xorps xmm0, xmm0
xor esi, esi
movlpd qword [esp + 0x28], xmm0
inc esi
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x14], edx
mov dword [esp + 0x20], ecx
mov eax, dword [esi*4 + 0x10b78390]
mov ebx, 0x10b78390
xor edi, edi
inc edi
sub eax, dword [ebx + esi*4 - 4]
cdq
mov ecx, eax
mov dword [esp + 0x28], edx
lea eax, [esi*4 + 0x10b78394]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x24], eax
push dword [esp + 0x28]
mov eax, dword [edi*4 + 0x10b78390]
sub eax, dword [ebx + edi*4 - 4]
cdq
push ecx
push edx
push eax
call fcn.1005af80
mov ecx, eax
mov dword [esp + 0x34], eax
or ecx, edx
mov dword [esp + 0x40], edx
je 0x1004274e
lea ecx, [edi + esi]
cmp ecx, 0xa7
jge 0x1004274e
mov ecx, dword [esp + 0x24]
push dword [esp + 0x40]
mov eax, dword [0x10b7e15c]
push dword [esp + 0x38]
sub eax, dword [ecx]
cdq
push edx
push eax
call fcn.1005af80
add dword [esp + 0x20], eax
adc dword [esp + 0x14], edx
add dword [esp + 0x24], 4
inc edi
mov ecx, dword [esp + 0x18]
cmp edi, 0xa7
jl 0x100426fa
inc esi
cmp esi, 0xa7
jl 0x100426d1
mov edi, dword [0x10baeebc]
lea eax, [edi - 1]
imul eax, edi
cdq
sub eax, edx
sar eax, 1
cdq
mov esi, edx
mov edi, eax
push esi
push edi
push esi
push edi
call fcn.1005af80
push esi
push edi
push edx
push eax
call fcn.1005af80
mov ecx, dword [esp + 0x20]
mov esi, edx
mov edx, dword [esp + 0x14]
mov edi, eax
call fcn.1006e43f
mov edx, esi
movsd qword [esp + 0x28], xmm0
mov ecx, edi
call fcn.1006e3ae
movsd xmm1, qword [esp + 0x28]
divsd xmm1, xmm0
push ecx
push ecx
movsd qword [esp], xmm1
push 0x10007e30
call fcn.100552a0
xor edi, edi
add esp, 0xc
xor ebx, ebx
inc edi
mov dword [esp + 0x14], ebx
jmp 0x100427ed
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x110], ebx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x100427de
mov dword [esp + 0x10], 8
jmp 0x10042845
mov dword [esp + 0x14], 0xb3152c58
mov dword [esp + 0x14], ebx
jmp 0x1004283b
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x1004282c
push 0x23f5
push 0x5f7
push ebx
push 0x35c
call dword [sym.imp.USER32.dll_CreateCaret]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + eax*4 + 0x110]
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ebx
jle 0x1004280b
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x37
jle 0x100427fd
push 2
pop esi
mov eax, dword [0x11054160]
test al, 2
jne 0x100428f1
or eax, esi
mov dword [0x11054160], eax
push ebx
mov dword [esp + 0x1f0], esi
push ebx
mov dword [0x11054140], ebx
mov dword [0x11054144], ebx
call fcn.100448ac
mov dword [0x11054140], eax
mov dword [0x11054148], ebx
mov dword [0x11054150], ebx
mov byte [esp + 0x1ec], 4
mov ecx, 0x11054148
mov dword [esp + 0x10c], eax
lea eax, [esp + 0x10c]
push eax
push 0x10
push ebx
lea eax, [esp + 0x1bc]
mov dword [0x1105415c], 0x3f800000
push eax
mov dword [0x1105414c], ebx
call fcn.10044684
push 0x1006fce6
mov dword [0x11054154], 7
mov dword [0x11054158], 8
call fcn.10055276
or dword [esp + 0x1f0], 0xffffffff
pop ecx
mov dword [esp + 0x28], 0xffffffff
lea ecx, [esp + 0x94]
push esi
call fcn.1000b098
mov dword [esp + 0x10], ebx
jmp 0x10042a31
push esi
lea ecx, [esp + 0x88]
call fcn.1000b098
mov dword [esp + 0x14], ebx
jmp 0x10042934
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x84]
mov dword [eax + ecx*4], edi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x10042922
push 2
mov dword [esp + 0x14], ebx
pop esi
cmp dword [esp + 0x10], esi
jg 0x100429ec
mov dword [esp + 0x14], ebx
mov dword [esp + 0x28], 0x43ccc099
mov dword [esp + 0x14], esi
cmp dword [esp + 0x14], ebx
jl 0x100429db
mov dword [esp + 0x18], 0xfffffff8
mov dword [esp + 0x18], esi
cmp dword [esp + 0x18], ebx
jl 0x100429d1
mov edi, dword [esp + 0x84]
cmp dword [esp + 0x10], ebx
jne 0x1004298d
cmp dword [edi + 4], ebx
jne 0x10042989
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x84]
mov eax, dword [edx + eax*4]
sub eax, dword [edx + ecx*4]
xor ecx, ecx
cmp eax, 8
setle cl
xor eax, eax
imul ecx, dword [edx + esi*4]
cmp ecx, 0x712c
setg al
add eax, dword [edi + 4]
mov dword [esp + 0x28], eax
dec dword [esp + 0x18]
jns 0x1004297a
push 2
pop esi
mov eax, dword [esp + 0x18]
dec dword [esp + 0x14]
jns 0x10042961
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jle 0x1004294b
xor edi, edi
inc edi
cmp dword [esp + 0x84], 0
je 0x1004284f
push dword [esp + 0x84]
call fcn.10055371
pop ecx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebx
jmp 0x1004284f
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x68], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x10042a21
mov dword [esp + 0x10], ebx
jmp 0x10042a4d
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x38], 0x184c506d
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x10042a3d
mov dword [esp + 0x10], ebx
jmp 0x10042a69
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x3c], 9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x10042a59
mov dword [esp + 0x10], ebx
jmp 0x10042a8b
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x94]
mov dword [eax + ecx*4], 0x2353725a
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x10042a75
mov dword [esp + 0x38], edi
cmp dword [esp + 0x38], ebx
jl 0x10042b25
mov dword [esp + 0x14], 0xb950ba1b
mov dword [esp + 0x14], edi
cmp dword [esp + 0x14], ebx
jl 0x10042b1b
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0x38]
cmp dword [esp + eax*4 + 0x68], ebx
jne 0x10042af3
mov eax, dword [esp + 0x14]
xor edx, edx
mov eax, dword [esp + 0x38]
cmp eax, 0x35069e5c
mov eax, dword [esp + 0x38]
setge dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x38]
setg cl
xor edx, edx
cmp ecx, 0x5998ab54
setge dl
cmp dword [esp + eax*4 + 0x68], edx
mov edx, ebx
jle 0x10042af5
mov edx, edi
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + eax*4 + 0x68]
xor eax, eax
cmp edx, 0xffffffff
setne al
add ecx, eax
cmp ecx, 0xffff
sbb eax, eax
neg eax
mov dword [esp + 0x28], eax
dec dword [esp + 0x14]
jns 0x10042ab1
dec dword [esp + 0x38]
jns 0x10042a9f
mov dword [esp + 0x3c], ebx
jmp 0x10042bcb
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x24], 0xfffffffa
mov dword [esp + 0x40], 0x5392614f
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], ebx
je 0x10042b64
mov eax, dword [esp + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x68]
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x68]
mov eax, dword [esp + 0x68]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
add eax, 0xaaf
imul ecx, eax
sub ecx, 0x9274
je 0x10042bc1
mov eax, dword [esp + 0x94]
cmp dword [eax], ebx
mov eax, edi
jne 0x10042bc3
mov eax, ebx
mov dword [esp + 0x38], eax
dec dword [esp + 0x3c]
cmp dword [esp + 0x3c], 0xffffffef
jl 0x10042b2e
cmp dword [esp + 0x94], 0
je 0x10042c02
push dword [esp + 0x94]
call fcn.10055371
pop ecx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ebx
xorps xmm0, xmm0
movdqu xmmword [esp + 0x128], xmm0
mov dword [esp + 0x20], 0x23e86f8c
mov dword [esp + 0x28], 0xfffffff8
mov dword [esp + 0x34], edi
mov dword [esp + 0x14], 0x43631e19
mov dword [esp + 0x24], 0x5b8b78ac
mov dword [esp + 0x28], 0xccc09984
mov dword [esp + 0x18], 0xdc6f79b3
mov dword [esp + 0x28], 0xe4153cdc
push 3
mov dword [esp + 0x14], ebx
pop edx
cmp dword [esp + 0x10], edx
jge 0x10042c6f
push 0xfffffffffffffff9
pop ecx
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x174], ecx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x10042c5a
mov dword [esp + 0x10], ebx
jmp 0x10042c88
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x198], 0xde87
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x10042c75
cmp dword [esp + 0x14], ebx
je 0x10042cac
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x24], 0xdf62
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
xor ecx, ecx
mov dword [esp + 0x20], 0x962ee6d0
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x34]
add edx, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
cmp edx, eax
setge cl
cmp ecx, 0x11914cc5
je 0x10042ce3
mov eax, edi
cmp dword [esp + 0x34], ebx
jne 0x10042ce5
mov eax, ebx
xor edx, edx
cmp eax, 0x1d4595a2
mov eax, dword [esp + 0x14]
setl dl
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x34]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], esi
cmp dword [esp + 0x18], ebx
jl 0x10042ef2
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x24], 0x555f25a
mov dword [esp + 0x28], 0xfffffff7
mov dword [esp + 0x28], 0x86fd7422
mov dword [esp + 0x20], ebx
jmp 0x10042d55
mov eax, dword [esp + 0x20]
mov dword [esp + eax*4 + 0x160], 0x6e024b17
inc dword [esp + 0x20]
cmp dword [esp + 0x20], esi
jl 0x10042d42
mov dword [esp + 0x20], ebx
jmp 0x10042ebe
mov dword [esp + 0x24], 0x32b81468
mov dword [esp + 0x28], 0x5c78859b
mov dword [esp + 0x28], 0x42336f7e
mov eax, dword [esp + 0x18]
cmp dword [esp + eax*4 + 0x174], ebx
je 0x10042e94
mov eax, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
sub ecx, 0xcf3d
cmp ecx, eax
setne dl
xor eax, eax
cmp edx, 0x350d55fa
setle al
sub eax, dword [esp + 0x34]
cmp eax, 0xf54c
jg 0x10042dd3
mov eax, dword [esp + 0x18]
cmp dword [esp + eax*4 + 0x174], ebx
mov eax, edi
jne 0x10042dd5
mov eax, ebx
mov edx, dword [esp + 0x10]
xor ecx, ecx
add edx, eax
mov eax, dword [esp + 0x18]
cmp eax, edx
setg cl
xor edx, edx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
cmp ecx, eax
setle dl
inc edx
mov dword [esp + 0x34], edx
jne 0x10042e08
mov eax, ebx
cmp dword [esp + 0x24], ebx
je 0x10042e0a
mov eax, edi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x19c]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
dec ecx
neg ecx
sbb ecx, ecx
neg ecx
sub eax, ecx
neg eax
sbb eax, eax
xor edx, edx
inc eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp ecx, eax
mov eax, 0xb03c7580
setne dl
cmp eax, edx
sbb eax, eax
inc eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
cmp dword [esp + eax*4 + 0x174], ebx
jne 0x10042e9c
mov eax, ebx
cmp dword [esp + 0x10], ebx
je 0x10042e9e
mov eax, edi
mov dword [esp + 0x28], eax
xor ecx, ecx
mov eax, dword [esp + 0x28]
cmp ecx, eax
sbb eax, eax
inc eax
mov dword [esp + 0x28], eax
cmp dword [esp + 0x160], ebx
jne 0x10042ec8
inc dword [esp + 0x20]
cmp dword [esp + 0x20], esi
jle 0x10042d64
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x10042ee8
push 0x22a
push 0x2352
push 0x7d5
call dword [sym.imp.GDI32.dll_GetPixel]
dec dword [esp + 0x18]
jns 0x10042d1c
lea eax, [esp + 0x4c]
push eax
call fcn.10043d51
mov esi, dword [eax]
mov dword [esp + 0x10], 0x4ebb
mov dword [esp + 0x28], 0x1547
cmp dword [esp + 0x28], 0x10bd
mov dword [esp + 0x34], esi
jge 0x10043008
movsd xmm0, qword [0x10007f88]
push ecx
push ecx
movsd qword [esp], xmm0
call fcn.100556e4
fadd qword [0x10007f78]
pop ecx
fmul qword [0x10007f70]
fstp qword [esp + 0x2c]
pop ecx
lea eax, [esp + 0xc0]
push eax
lea eax, [esp + 0xbc]
push eax
push 0x10007a38
call fcn.100550ab
mov esi, dword [esp + 0xc4]
add esp, 0xc
mov edi, dword [esp + 0xbc]
mov eax, esi
or eax, edi
mov edx, dword [esp + 0xc4]
mov ecx, dword [esp + 0xc0]
jne 0x10042f8b
mov eax, ecx
or eax, edx
je 0x10043001
cmp edi, edx
jl 0x10042fbd
jg 0x10042f95
cmp ecx, esi
jae 0x10042fbf
xor esi, ecx
xor edi, edx
xor ecx, esi
xor edx, edi
xor esi, ecx
mov dword [esp + 0xc0], ecx
xor edi, edx
mov dword [esp + 0xc4], edx
mov dword [esp + 0xb8], esi
mov dword [esp + 0xbc], edi
cmp ecx, esi
jne 0x10042fc5
cmp edx, edi
je 0x10042ff2
call fcn.1006e43f
mov edx, edi
movsd qword [esp + 0x40], xmm0
mov ecx, esi
call fcn.1006e43f
mulsd xmm0, qword [esp + 0x28]
movsd xmm1, qword [esp + 0x40]
comisd xmm1, xmm0
ja 0x10042ff2
push 0x10007df4
jmp 0x10042ff7
push 0x10007de8
call fcn.10055376
jmp 0x10042f45
mov esi, dword [esp + 0x34]
xor edi, edi
inc edi
mov dword [esp + 0x24], 0x90ae735
mov dword [esp + 0x150], edi
mov dword [esp + 0x154], edi
mov dword [esp + 0x158], edi
mov dword [esp + 0x15c], edi
mov dword [esp + 0x14], ebx
jmp 0x10043045
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x138], 0x5db0ff84
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x10043032
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jne 0x10043061
cmp dword [esp + 0x10], 0x6001
mov eax, ebx
jle 0x10043063
mov eax, edi
xor ecx, ecx
cmp eax, edi
mov eax, dword [esp + 0x10]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x10]
setne dl
xor ecx, ecx
imul eax, edx
imul eax, eax, 0xec13
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
cmp eax, 0x5bea
setg cl
sub ecx, 6
imul ecx, dword [esp + 0x10]
sub ecx, dword [esp + 0x10]
sub ecx, dword [esp + 0x10]
sub ecx, dword [esp + 0x10]
jne 0x100430c6
mov edx, ebx
cmp dword [esp + 0x10], ebx
je 0x100430c8
mov edx, edi
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [esp + 0x150]
cmp edx, eax
setne cl
mov dword [esp + 0x138], ecx
mov eax, dword [esp + 0x150]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], ebx
dec dword [esp + 0x28]
cmp byte [ebp + 0xc], 0
jne 0x10043102
test esi, esi
jne 0x100438a3
mov dword [esp + 0x10], 0xe83c7730
lea ecx, [esp + 0xac]
push edi
call fcn.1000b098
mov dword [esp + 0x1ec], 5
push 3
mov dword [esp + 0x2c], 0x67bc6200
mov dword [esp + 0x1c], ebx
pop ecx
jmp 0x10043143
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x50], 0xffff
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ecx
jl 0x10043133
mov dword [esp + 0x18], ebx
jmp 0x10043165
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xac]
mov dword [eax + ecx*4], 0x223b16aa
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x1004314f
push 2
mov dword [esp + 0x14], ebx
pop esi
jmp 0x100432bc
mov dword [esp + 0x20], 0xc7153413
xor edx, edx
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x50]
mov eax, dword [esp + 0x54]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x50]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x50]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x50]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x50]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + eax*4 + 0x50]
mov eax, dword [esp + 0x54]
cmp ecx, eax
mov eax, dword [esp + 0x10]
setg dl
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0x50]
cmp edx, eax
mov eax, dword [esp + 0x10]
setge cl
xor edx, edx
add ecx, dword [esp + eax*4 + 0x50]
mov eax, dword [esp + 0x10]
cmp ecx, eax
setg dl
sub edx, dword [esp + 0x10]
mov eax, dword [esp + 0xac]
neg edx
sbb edx, edx
inc edx
mov dword [eax], edx
mov dword [esp + 0x20], ebx
jmp 0x100432ae
push 3
pop eax
push eax
lea ecx, [esp + 0xe8]
call fcn.1000b098
push 3
mov dword [esp + 0x18], ebx
pop edx
jmp 0x10043226
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xe4]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x10043214
mov eax, dword [esp + 0xe4]
mov dword [eax], esi
mov dword [esp + 0x14], edi
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x1004324d
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAdjustment]
mov dword [esp + 0x14], ebx
jmp 0x1004327d
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x10043279
push edi
push 0x1795
push 0x21aa
push 0x223
push 0x8e0
call dword [sym.imp.USER32.dll_SetScrollRange]
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jle 0x10043253
mov eax, dword [esp + 0xe4]
dec dword [eax]
jns 0x10043235
push eax
call fcn.10055371
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xec], ebx
mov dword [esp + 0xf0], ebx
inc dword [esp + 0x24]
pop ecx
cmp dword [esp + 0x20], esi
jle 0x100431fb
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jle 0x10043177
dec dword [esp + 0x28]
or dword [esp + 0x1ec], 0xffffffff
cmp dword [esp + 0xac], 0
je 0x100432fe
push dword [esp + 0xac]
call fcn.10055371
pop ecx
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], ebx
mov dl, byte [ebp + 0xc]
lea eax, [esp + 0x1d0]
mov ecx, dword [esp + 0x4c]
push eax
call fcn.10035fe3
cmp byte [ebp + 0xc], 0
lea edi, [esp + 0x12c]
mov esi, eax
pop ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
je 0x10043346
mov ecx, dword [esp + 0x130]
test ecx, ecx
je 0x10043346
mov eax, dword [esp + 0x134]
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], ecx
mov esi, dword [esp + 0x34]
test esi, esi
jne 0x100438a0
cmp dword [esp + 0x128], esi
jle 0x100438a0
push 2
lea ecx, [esp + 0xd0]
call fcn.1000b098
xor edi, edi
mov dword [esp + 0x14], 7
mov dword [esp + 0x14], ebx
inc edi
cmp dword [esp + 0x14], 2
jge 0x10043397
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xcc]
mov dword [eax + ecx*4], edi
inc dword [esp + 0x14]
jmp 0x1004337c
mov dword [esp + 0x14], ebx
jmp 0x100433be
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x100433ba
push 0xd89
push ebx
push ebx
push 0xe52
call dword [sym.imp.GDI32.dll_PolyPolyline]
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jle 0x1004339d
cmp dword [esp + 0xcc], 0
je 0x100433f0
push dword [esp + 0xcc]
call fcn.10055371
pop ecx
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x28], 0x985589b5
mov dword [esp + 0x28], 0xe8e5
mov dword [esp + 0x28], edi
push 3
mov dword [esp + 0x2c], 0x4e0bbe0e
mov dword [esp + 0x18], ebx
pop ecx
jmp 0x10043430
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x1c4], 5
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ecx
jl 0x1004341d
mov dword [esp + 0x14], ebx
jmp 0x1004348d
mov dword [esp + 0x28], 6
mov dword [esp + 0x28], 0x6b17
mov dword [esp + 0x28], 0x209c3997
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x28], 0x5f0a8622
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x10043489
push 0x1aa3
push 0x2502
push 0xd2
push 0x1bc8
call dword [sym.imp.GDI32.dll_CreateRectRgn]
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jle 0x1004343c
mov dword [esp + 0x14], 0x42a4
lea ecx, [esp + 0x11c]
mov dword [esp + 0x28], 9
mov dword [esp + 0x28], 0xffffffff
push edi
call fcn.1000b098
mov dword [esp + 0x1ec], 6
mov dword [esp + 0x20], ebx
jmp 0x100434e0
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x11c]
mov dword [eax + ecx*4], 8
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edi
jl 0x100434ca
mov byte [esp + 0x1f], bl
mov dword [esp + 0x28], 0x1e44
cmp dword [esp + 0x28], 0x1362
jge 0x1004357b
lea eax, [esp + 0x90]
mov ecx, 0x1065f4f0
push eax
call fcn.1002ec13
mov esi, dword [esp + 0x90]
test esi, esi
je 0x1004356f
push 3
pop ebx
lea eax, [esp + 0x140]
push eax
push ecx
lea eax, [esp + 0x120]
mov ecx, 0x1065f4f0
push eax
call fcn.1002ec13
pop ecx
mov ecx, eax
call fcn.1002ec13
mov eax, dword [esp + 0x140]
cdq
idiv ebx
mov ecx, eax
mov eax, dword [esp + 0x118]
cdq
idiv ebx
imul ecx, eax
push ecx
mov ecx, 0x1065f438
call fcn.1002f038
push eax
call fcn.10033585
pop ecx
dec esi
jne 0x1004351c
xor ebx, ebx
dec esi
mov dword [esp + 0x90], esi
mov esi, dword [esp + 0x34]
cmp byte [esp + 0x1f], 0
je 0x10043588
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp dword [esp + 0x14], ebx
jne 0x100435c0
mov eax, dword [esp + 0x14]
xor edx, edx
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x28]
add ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp ecx, eax
mov eax, dword [esp + 0x14]
setne dl
xor ecx, ecx
cmp eax, edx
setl cl
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x11c]
or dword [esp + 0x1ec], 0xffffffff
push eax
mov dword [eax], edi
call fcn.10055371
cmp dword [esp + 0x130], 0
pop ecx
mov dword [esp + 0x11c], ebx
mov dword [esp + 0x120], ebx
mov dword [esp + 0x124], ebx
je 0x100438a3
mov dword [esp + 0x10], 0xe83c7730
lea ecx, [esp + 0xa0]
push edi
call fcn.1000b098
mov dword [esp + 0x1ec], 7
push 3
mov dword [esp + 0x2c], 0x67bc6200
mov dword [esp + 0x1c], ebx
pop ecx
jmp 0x1004363c
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x5c], 0xffff
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ecx
jl 0x1004362c
mov dword [esp + 0x18], ebx
jmp 0x1004365e
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xa0]
mov dword [eax + ecx*4], 0x223b16aa
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x10043648
push 2
mov dword [esp + 0x14], ebx
pop esi
jmp 0x100437b5
mov dword [esp + 0x20], 0xc7153413
xor edx, edx
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x5c]
mov eax, dword [esp + 0x60]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x5c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x5c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x5c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x5c]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + eax*4 + 0x5c]
mov eax, dword [esp + 0x60]
cmp ecx, eax
mov eax, dword [esp + 0x10]
setg dl
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0x5c]
cmp edx, eax
mov eax, dword [esp + 0x10]
setge cl
xor edx, edx
add ecx, dword [esp + eax*4 + 0x5c]
mov eax, dword [esp + 0x10]
cmp ecx, eax
setg dl
sub edx, dword [esp + 0x10]
mov eax, dword [esp + 0xa0]
neg edx
sbb edx, edx
inc edx
mov dword [eax], edx
mov dword [esp + 0x20], ebx
jmp 0x100437a7
push 3
pop eax
push eax
lea ecx, [esp + 0xdc]
call fcn.1000b098
push 3
mov dword [esp + 0x18], ebx
pop edx
jmp 0x1004371f
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xd8]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x1004370d
mov eax, dword [esp + 0xd8]
mov dword [eax], esi
mov dword [esp + 0x14], edi
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x10043746
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAdjustment]
mov dword [esp + 0x14], ebx
jmp 0x10043776
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x10043772
push edi
push 0x1795
push 0x21aa
push 0x223
push 0x8e0
call dword [sym.imp.USER32.dll_SetScrollRange]
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jle 0x1004374c
mov eax, dword [esp + 0xd8]
dec dword [eax]
jns 0x1004372e
push eax
call fcn.10055371
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], ebx
mov dword [esp + 0xe4], ebx
inc dword [esp + 0x24]
pop ecx
cmp dword [esp + 0x20], esi
jle 0x100436f4
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jle 0x10043670
dec dword [esp + 0x28]
or dword [esp + 0x1ec], 0xffffffff
cmp dword [esp + 0xa0], 0
je 0x100437f7
push dword [esp + 0xa0]
call fcn.10055371
pop ecx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa8], ebx
mov ecx, dword [esp + 0x12c]
call fcn.10042007
mov dword [esp + 0x18], 0xdb3ae355
mov esi, eax
mov dword [esp + 0x18], 0xffffffee
jmp 0x1004388b
mov dword [esp + 0x28], 0xeb90
mov dword [esp + 0x40], 0xab61b583
mov dword [esp + 0x40], edi
cmp dword [esp + 0x28], ebx
jne 0x10043892
mov dword [esp + 0x40], 0x2b47
mov ecx, 0xd513c61c
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
imul eax, dword [esp + 0x18]
cmp ecx, eax
mov eax, dword [esp + 0x18]
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
mov eax, dword [esp + 0x18]
setl dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x28]
neg ecx
sbb ecx, ecx
xor eax, eax
neg ecx
imul ecx, dword [esp + 0x18]
cmp ecx, dword [esp + 0x40]
setl al
mov dword [esp + 0x40], eax
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x19
je 0x10043817
lea eax, [esp + 0x4c]
push eax
call fcn.10043d51
mov dword [eax], esi
jmp 0x100438a3
xor edi, edi
inc edi
lea ecx, [esp + 0x128]
call fcn.1003d566
test esi, esi
je 0x100439ad
push 3
pop eax
mov dword [esp + 0x24], 0x6f5a9c4c
lea ecx, [esp + 0x180]
push eax
call fcn.1000b098
push 3
pop eax
mov dword [esp + 0x1ec], 8
lea ecx, [esp + 0x18c]
mov dword [esp + 0x14], ebx
push eax
call fcn.1000b098
push 3
mov dword [esp + 0x1c], ebx
pop edx
jmp 0x1004390d
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x180]
mov dword [eax + ecx*4], 0x44a75432
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edx
jl 0x100438f7
mov dword [esp + 0x18], ebx
jmp 0x1004392c
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x18c]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edx
jl 0x10043919
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x180]
cmp dword [ecx], eax
jle 0x1004394c
mov eax, ebx
cmp dword [ecx + 8], ebx
je 0x1004394e
mov eax, edi
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], ebx
je 0x1004395c
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x18c]
push eax
mov dword [eax + 8], edi
call fcn.10055371
or dword [esp + 0x1f0], 0xffffffff
pop ecx
push dword [esp + 0x180]
call fcn.10055371
mov edx, dword [esp + 0x74]
pop ecx
mov ecx, esi
call fcn.10042047
mov esi, eax
lea eax, [esp + 0x80]
push eax
mov dword [esp + 0x104], esi
call fcn.10043cef
mov dword [eax], esi
mov eax, dword [ebp + 8]
lea esi, [esp + 0x100]
mov ecx, dword [esp + 0x1e4]
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret