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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1005ded6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1e0
push ebx
push esi
push edi
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0xdc]
mov dword [esp + 0x2c], 2
mov dword [esp + 0x28], 0xfffffff7
push 3
mov dword [esp + 0x68], edx
call fcn.10001fe6
push 2
pop esi
xor ebx, ebx
lea ecx, [esp + 0x88]
mov dword [esp + 0x1f4], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 0x14], 0x2845
push 4
call fcn.10001fe6
xor eax, eax
lea ecx, [esp + 0xd0]
inc eax
mov byte [esp + 0x1f4], al
mov dword [esp + 0x10], ebx
push esi
mov dword [esp + 0x64], eax
call fcn.10001fe6
mov byte [esp + 0x1f4], 2
lea edx, [esp + 0x3c]
xor eax, eax
push ecx
inc eax
lea ecx, [esp + 0xe0]
mov dword [esp + 0x34], eax
mov dword [esp + 0x54], 0xffffffff
mov dword [esp + 0x1c], 0xfffffff8
push ecx
mov dword [esp + 0x20], 0xffffffff
mov cl, al
mov dword [esp + 0x48], 0xef404622
mov dword [esp + 0x3c], 6
push 0x34af
call fcn.100049b1
add esp, 0xc
mov dword [esp + 0x3c], ebx
jmp 0x10004eb2
mov eax, dword [esp + 0x3c]
mov dword [esp + eax*4 + 0xf4], 0xfffffffd
inc dword [esp + 0x3c]
cmp dword [esp + 0x3c], 4
jl 0x10004e9f
push 0xea
xor edi, edi
lea edx, [esp + 0x40]
inc edi
push edi
push ecx
push 0x4f1a
lea ecx, [esp + 0x98]
call fcn.10004a19
add esp, 0x10
lea eax, [esp + 0xd0]
mov edx, 0x463d
push eax
push ebx
push ecx
lea eax, [esp + 0x48]
mov ecx, 0x7dad
push eax
call fcn.10004a19
mov eax, dword [esp + 0x38]
add esp, 0x10
dec eax
mov ecx, 0xffff
neg eax
sbb eax, eax
xor edx, edx
neg eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x88]
mov esi, dword [eax]
imul eax, esi, 0x121a5e51
sub ecx, eax
cmp ecx, 0xffffffff
setge dl
xor eax, eax
sub edx, 0xd4f9
cmp esi, edx
setne al
cmp eax, 0xffff
sbb eax, eax
or edx, 0xffffffff
inc eax
xor ecx, ecx
sub edx, eax
mov eax, dword [esp + 0xd0]
mov dword [eax], edx
mov eax, dword [esp + 0x14]
cmp edx, eax
setge cl
lea eax, [ecx + 0x5c24]
xor ecx, ecx
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0xf4]
cmp edx, eax
mov esi, dword [esp + 0xdc]
setne cl
mov dword [esi + 4], edx
mov dword [esp + 0x30], ecx
xor ecx, ecx
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x100]
dec dword [esp + 0x10]
mov eax, dword [esp + 0x88]
cmp dword [eax], 0xffff5ec5
mov eax, dword [esp + 0x10]
setg cl
add eax, ecx
xor ecx, ecx
cmp eax, 0xffffffff
setg cl
add ecx, dword [esp + 0x50]
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x50]
mov eax, dword [esp + 0x100]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0xf8]
mov eax, dword [esp + 0x2c]
xor ecx, ecx
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x100]
mov eax, dword [esp + 0x40]
cmp eax, 0x8d16
mov eax, dword [esp + 0x88]
setne cl
cmp ecx, dword [eax]
jle 0x10005065
mov dword [esp + 0x10], 6
cmp dword [esp + 0x10], 0x2e
je 0x100050e1
xor ecx, ecx
inc ecx
mov dword [esp + 0x14], ebx
jmp 0x10005052
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x18], 3
cmp dword [esp + 0x18], ebx
jl 0x1000504e
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x40], 0xfffffffd
dec dword [esp + 0x2c]
dec dword [esp + 0x18]
jns 0x10005034
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ecx
jle 0x10005022
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x2e
jne 0x1000501c
jmp 0x100050de
xor edx, edx
inc edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0xc], ebx
jmp 0x10005085
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x19c], 0xffffffff
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x10005072
mov eax, dword [esp + 0x50]
xor ecx, ecx
test eax, eax
mov eax, dword [esp + 0xdc]
setle cl
add ecx, dword [eax + 8]
jne 0x100050af
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x34], ebx
jne 0x100050af
mov edx, ebx
mov eax, dword [esp + 0x28]
xor ecx, ecx
cmp edx, eax
sete cl
sub ecx, dword [esp + 0x2c]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0x1a0], ecx
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0xd0]
mov eax, dword [eax]
mov dword [esi + 4], eax
xor edi, edi
inc edi
lea ecx, [esp + 0xd0]
call fcn.10002048
lea ecx, [esp + 0x88]
call fcn.10002048
or dword [esp + 0x1f4], 0xffffffff
lea ecx, [esp + 0xdc]
call fcn.10002048
mov esi, dword [esp + 0x64]
cmp byte [esi], 0x50
jne 0x10005c9c
cmp byte [esi + 1], 0x4b
jne 0x10005c9c
push 2
lea ecx, [esp + 0x194]
call fcn.10001fe6
push 0x74e
push 0x5642
push 0x148b
push edi
push 0x2c54
push ebx
push 0x440c
lea eax, [esp + 0x1ac]
mov dword [esp + 0xc4], 0x8d4081c2
push eax
push ebx
lea edx, [esp + 0x1a8]
mov ecx, 0x2998
call fcn.10004bec
add esp, 0x20
lea eax, [esp + 0xac]
mov edx, 0x2949
xor cl, cl
push 0x5147
push eax
call fcn.100049b1
add esp, 0xc
lea ecx, [esp + 0x190]
call fcn.10002048
mov dword [esp + 0x48], 2
mov dword [esp + 0x10], ebx
mov dword [esp + 0x68], 0x6d8bc0d
mov dword [esp + 0xb4], 0xffff
cmp dword [esp + 0x10], ebx
jne 0x100051de
mov eax, dword [esp + 0x10]
dec eax
neg eax
sbb eax, eax
inc eax
imul eax, eax, 0x5c9e
test eax, eax
jne 0x100051de
cmp dword [esp + 0x10], ebx
jne 0x100051de
mov edi, ebx
mov ecx, dword [esp + 0x10]
xor edx, edx
mov eax, dword [esp + 0x10]
imul ecx, edi
cmp ecx, eax
setne dl
sub edx, dword [esp + 0x10]
mov eax, dword [esp + 0x68]
add eax, edx
cmp eax, dword [esp + 0x10]
je 0x10005271
push 2
lea ecx, [esp + 0x138]
call fcn.10001fe6
mov dword [esp + 0xc0], 0xb6bd0d42
mov dword [esp + 0xc], ebx
jmp 0x10005235
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x134]
mov dword [eax + ecx*4], 0xfffb
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x1000521f
lea eax, [esp + 0x68]
xor dl, dl
push eax
lea eax, [esp + 0x138]
mov cl, 1
push eax
lea eax, [esp + 0xc8]
push eax
push ebx
push 0x5696
call fcn.10004913
add esp, 0x14
lea ecx, [esp + 0x134]
call fcn.10002048
jmp 0x100052bb
xor cl, cl
mov dword [esp + 0xac], 0x7440
call fcn.10004a98
push 0x800
push 0x6207
lea eax, [esp + 0x70]
mov edx, 0x48f9
push eax
push ebx
push 0x37d
xor eax, eax
lea ecx, [esp + 0xc0]
inc eax
push eax
push 0x2c9c
push 0x3c30
push eax
call fcn.10004bec
add esp, 0x24
lea eax, [esp + 0xb4]
push eax
push ecx
xor cl, cl
call fcn.10004a64
mov al, byte [esi + 2]
pop ecx
pop ecx
push 3
mov byte [esp + 0x53], al
pop edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x14], 0x60477862
mov dword [esp + 0x28], 0x9e96bb64
mov dword [esp + 0xc], ebx
jmp 0x10005301
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x54], 0xfffffffa
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x100052f1
mov dword [esp + 0x14], ebx
jmp 0x100053f2
mov dword [esp + 0x10], 4
mov dword [esp + 0x10], 1
cmp dword [esp + 0x10], ebx
jl 0x100053ee
mov dword [esp + 0xc], 0xfffffffe
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x54]
mov eax, dword [esp + 0x58]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x54]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x54]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x54]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + eax*4 + 0x54]
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x54], ecx
mov dword [esp + 0xc], ebx
jmp 0x100053d6
push 1
lea ecx, [esp + 0xec]
call fcn.10001fe6
lea eax, [esp + 0xe8]
mov edx, 0x1c09
push eax
push 0x3461
push 0x604b
xor eax, eax
mov ecx, 0x48c
inc eax
push eax
push 0x4f33
push eax
lea eax, [esp + 0xd0]
push eax
push 0x2d3f
push ebx
call fcn.10004bec
mov eax, dword [esp + 0x10c]
lea ecx, [esp + 0x10c]
add esp, 0x24
cmp dword [eax], ebx
jne 0x100053df
call fcn.10002048
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xffffffef
jg 0x10005371
jmp 0x100053e4
call fcn.10002048
dec dword [esp + 0x10]
jns 0x1000532b
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xfffffffb
jg 0x10005311
mov eax, dword [esp + 0x58]
xor edx, edx
mov eax, dword [esp + 0x54]
mov eax, dword [esp + 0x14]
push 8
pop ecx
sub ecx, eax
cmp ecx, 1
push 4
setle dl
xor ecx, ecx
add edx, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp edx, eax
mov eax, dword [esp + 0x58]
setg cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x2c]
setne dl
xor ecx, ecx
cmp edx, eax
pop edx
setge cl
sub ecx, dword [esp + 0x14]
cmp ecx, edx
ja 0x1000544a
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x14], ebx
je 0x1000545f
cmp dword [esp + 0x28], ebx
je 0x1000545f
xor ecx, ecx
inc ecx
jmp 0x10005461
mov ecx, ebx
mov eax, dword [esp + 0x28]
imul eax, ecx
test eax, eax
je 0x10005477
cmp dword [esp + 0x28], ebx
je 0x10005477
xor eax, eax
inc eax
jmp 0x10005479
mov eax, ebx
sub dword [esp + 0x14], eax
lea ecx, [esp + 0x6c]
mov al, byte [esi + 3]
push dword [esp + 0xb8]
movdqa xmm0, xmmword [0x1006c4b0]
mov byte [esp + 0x49], al
lea eax, [esp + 0x1c8]
push eax
lea eax, [esp + 0x1bc]
mov dword [esp + 0x50], edx
push eax
mov dword [esp + 0x1c], 0x5252cb13
push ebx
movdqu xmmword [esp + 0x1c4], xmm0
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
call fcn.100046f5
push edi
lea ecx, [esp + 0x144]
mov dword [esp + 0x1f8], edi
call fcn.10001fe6
mov byte [esp + 0x1f4], 4
mov dword [esp + 0xc], ebx
cmp dword [esp + 0xc], edi
jge 0x10005515
push 2
pop esi
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x140]
mov dword [eax + ecx*4], esi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x100054fd
mov esi, dword [esp + 0x6c]
xor ecx, ecx
push 5
cmp dword [esi + 4], 7
mov eax, dword [esi]
sete cl
inc eax
add eax, ecx
xor edi, edi
imul eax, dword [esi + 4]
inc edi
cmp eax, edi
mov eax, dword [esp + 0x14]
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, 0x76ec
mov eax, dword [esp + 0x144]
setge cl
imul ecx, edx
xor edx, edx
cmp ecx, dword [esi + 4]
pop esi
setl dl
xor ecx, ecx
mov dword [eax + 8], edx
mov eax, dword [esp + 0x6c]
cmp edx, dword [eax]
mov eax, dword [esp + 0x10]
setg cl
add ecx, esi
imul eax, ecx
cmp edi, eax
mov eax, dword [esp + 0x6c]
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, dword [eax + 0xc]
setle dl
cmp dword [esp + 0x10], edx
je 0x100055b1
mov dword [esp + 0x10], 0xffffffe2
cmp dword [esp + 0x10], 0xffffffef
je 0x100055d4
push 0x10f9
push ecx
mov cl, 1
call fcn.10004a64
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0xffffffef
pop ecx
pop ecx
jne 0x10005593
xor ebx, ebx
jmp 0x100055d4
xor eax, eax
mov edx, 0x18a6
inc eax
push eax
push ebx
push 0x1942
push 0x5abd
push 0x7103
mov cl, al
call fcn.10004c9d
add esp, 0x14
lea ecx, [esp + 0x140]
call fcn.10002048
or dword [esp + 0x1f4], 0xffffffff
lea ecx, [esp + 0x6c]
call fcn.10002048
lea eax, [esp + 0x4f]
push eax
push ecx
push ebx
push ecx
lea ecx, [esp + 0x58]
call fcn.10004acd
add esp, 0x10
mov dword [esp + 0xc], ebx
jmp 0x1000561e
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x1d0], 0x124f01c0
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x1000560b
push 0x1ed5
push ecx
push ebx
mov byte [esp + 0x58], bl
lea edx, [esp + 0x58]
push ecx
call fcn.10004d36
add esp, 0x10
mov byte [esp + 0x46], bl
lea eax, [esp + 0x46]
mov edx, 0x2788
push eax
push ecx
push 1
push ecx
call fcn.10004d36
mov edi, dword [esp + 0x58]
lea edx, [esp + 0x58]
add esp, 0x10
mov dword [esp + 0x40], edi
push 1
push ecx
call fcn.100048e7
pop ecx
pop ecx
push 2
lea ecx, [esp + 0x150]
call fcn.10001fe6
xor eax, eax
mov dword [esp + 0x1f4], esi
inc eax
mov edx, 0x790c
mov dword [esp + 0x168], eax
xor cl, cl
mov dword [esp + 0x16c], eax
push ebx
push eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x17c], eax
lea eax, [esp + 0xac]
push eax
lea eax, [esp + 0x158]
push 0x761
push eax
call fcn.10004c9d
mov eax, dword [esp + 0x160]
lea ecx, [esp + 0x160]
or dword [esp + 0x208], 0xffffffff
add esp, 0x14
mov dword [eax], ebx
call fcn.10002048
push ecx
lea eax, [esp + 0x49]
xor dl, dl
push eax
lea eax, [esp + 0x50]
push eax
push ecx
call fcn.10004bbe
mov esi, dword [esp + 0x74]
add esp, 0x10
mov ecx, dword [edi + esi + 0x14]
mov edx, dword [edi + esi]
call fcn.100048db
mov edi, dword [esp + 0x48]
mov dl, 1
push 0x5d26
mov dword [esp + 0x60], eax
add edi, esi
push 0x1540
mov dword [esp + 0xcc], 0x41b66baf
push 0x5df0
mov dword [esp + 0xc8], ebx
push ecx
mov dword [esp + 0x94], 0x53e3f36a
mov ecx, 0x4c71
mov dword [esp + 0xdc], 0xc1094d0e
push 0x7789
mov dword [esp + 0xb4], 0x3bab7215
call fcn.10004af1
add esp, 0x14
lea eax, [esp + 0xbc]
xor dl, dl
push eax
lea eax, [esp + 0xc8]
push eax
lea eax, [esp + 0xa8]
push eax
push ecx
lea eax, [esp + 0xdc]
push eax
lea ecx, [esp + 0x98]
call fcn.10004af1
add esp, 0x14
mov dword [esp + 0xc], ebx
jmp 0x100057b6
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x1d8], 0x124f01c0
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x100057a3
push ecx
push 0x4e5f
push 0x4c05
push ecx
mov dl, 1
call fcn.10004bbe
add esp, 0x10
mov byte [esp + 0x47], bl
lea eax, [esp + 0x47]
push eax
push 0x68db
push 0x4cf1
push ebx
push ecx
call fcn.10004d6e
mov eax, dword [esp + 0x70]
add esp, 0x14
mov ecx, dword [ebp + 8]
push 2
mov dword [ecx], eax
lea ecx, [esp + 0x17c]
mov dword [esp + 0x34], 5
mov dword [esp + 0x20], 0xc3203bd6
mov dword [esp + 0x38], 0x108531d1
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x20], 0xfffffffd
mov dword [esp + 0x20], 0xad5befa1
mov dword [esp + 0x20], 0xfffffff9
call fcn.10001fe6
mov dword [esp + 0x1c], 0x9ee491ba
xor ecx, ecx
mov dword [esp + 0x1c], ebx
inc ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x1c], 0x66798564
mov dword [esp + 0x20], ebx
jmp 0x10005877
mov eax, dword [esp + 0x20]
mov dword [esp + eax*4 + 0x1e0], 4
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 2
jl 0x10005864
mov dword [esp + 0x20], ebx
jmp 0x10005893
mov eax, dword [esp + 0x20]
mov dword [esp + eax*4 + 0x1c4], ebx
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 3
jl 0x10005884
push 0x2bb
lea eax, [esp + 0x17c]
mov edx, 0xeb8
push eax
push 0x31f6
push ecx
lea eax, [esp + 0x30]
push eax
push ecx
push 0x714f
push 0x1237
push ecx
mov ecx, 0x3a13
call fcn.10004bec
add esp, 0x24
mov dword [esp + 0x20], ebx
jmp 0x100058e5
mov eax, dword [esp + 0x20]
mov dword [esp + eax*4 + 0x104], ebx
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 3
jl 0x100058d6
mov ecx, dword [esp + 0x1cc]
mov eax, dword [esp + 0x30]
dec dword [esp + 0x30]
cmp eax, ecx
jg 0x10005904
xor ecx, ecx
inc ecx
jmp 0x10005906
mov ecx, ebx
inc dword [esp + 0x10c]
mov eax, dword [esp + 0x10c]
add eax, ecx
lea ecx, [esp + 0x178]
mov dword [esp + 0x34], eax
call fcn.10002048
lea eax, [esp + 0x5c]
push eax
push ecx
mov cl, 1
call fcn.10004c78
push 0x4fa4
push 0xe50
xor eax, eax
lea ecx, [esp + 0xd8]
inc eax
push 0x7756
push eax
push ecx
mov dword [esp + 0xe4], eax
mov dl, al
mov cl, al
call fcn.10004913
mov ecx, dword [esp + 0x5c]
add esp, 0x1c
mov eax, dword [ecx + esi]
mov dword [esp + 0x158], eax
mov eax, dword [ecx + esi + 4]
mov dword [esp + 0x15c], eax
mov eax, dword [ecx + esi + 8]
mov dword [esp + 0x160], eax
mov eax, dword [ecx + esi + 0xc]
xor ecx, ecx
mov dword [esp + 0x164], eax
inc ecx
mov dword [esp + 0xc], 0xb743d837
mov dword [esp + 0x50], 4
mov dword [esp + 0x1c], 0xea381e16
mov dword [esp + 0x30], 0xc37
mov dword [esp + 0xc], ebx
jmp 0x100059c9
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x38], 0x624039b
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ecx
jl 0x100059b9
push ebx
push ecx
push 0x793e
lea eax, [esp + 0x59]
mov byte [esp + 0x59], bl
push eax
push 0x5eae
mov edx, 0x67de
call fcn.10004c9d
mov dword [esp + 0x20], ebx
add esp, 0x14
cmp dword [esp + 0xc], ebx
jg 0x10005c6a
push dword [esp + 0xa4]
movdqa xmm0, xmmword [0x1006c4f0]
lea eax, [esp + 0x1b8]
push eax
lea eax, [esp + 0x1ac]
mov dword [esp + 0x18], 2
push eax
mov dword [esp + 0x20], 0x4b3f4b14
lea ecx, [esp + 0xa0]
push ebx
movdqu xmmword [esp + 0x1b4], xmm0
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], ebx
call fcn.100046f5
mov dword [esp + 0x1f4], 6
xor edx, edx
inc edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x1c], 0xceb8a064
mov dword [esp + 0x18], ebx
jmp 0x10005a94
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0xb0], 0xbef27779
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edx
jl 0x10005a81
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], ebx
jl 0x10005c21
mov esi, dword [esp + 0x94]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x1c], 0xfffffffb
mov dword [esp + 0x18], ebx
jmp 0x10005ad4
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x188], 0xb8b2ef5e
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x10005ac1
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0x38]
mov eax, dword [esp + 0x50]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
cmp ecx, eax
sbb eax, eax
neg eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x38], ebx
je 0x10005b1b
mov dword [esp + 0x2c], edx
cmp dword [esp + 0x14], ebx
jne 0x10005b1f
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0x38]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x38]
cmp dword [esp + 0x2c], eax
sete cl
xor eax, eax
cmp ecx, dword [esi + 8]
setle al
neg eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x38]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x18], ebx
jmp 0x10005c0d
mov dword [esp + 0x60], 0x94bf
mov dword [esp + 0x34], 0x6a6d983a
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x1c], 0x69b92b2c
cmp dword [esp + 0x14], ebx
jne 0x10005c17
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x14], ebx
jl 0x10005c09
mov dword [esp + 0x40], 0x1fdf20be
mov dword [esp + 0x1c], 6
mov dword [esp + 0x1c], 0x9d6240c4
mov dword [esp + 0x1c], edx
mov dword [esp + 0x1c], 0xbeba6e32
mov ecx, dword [esp + 0x34]
imul ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x38]
inc dword [esp + 0x30]
push 1
cmp ecx, eax
mov eax, edx
mov edx, dword [esp + 0x44]
cmovne eax, ebx
imul edx, dword [esp + 0x64]
xor ecx, ecx
add edx, eax
mov eax, dword [esp + 0x190]
imul eax, dword [esp + 0x54]
cmp edx, eax
pop edx
setg cl
xor eax, eax
cmp ecx, 0xffffffff
setne al
mov dword [esp + 0xb0], eax
dec dword [esp + 0x14]
jns 0x10005b97
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ebx
jle 0x10005b67
dec dword [esp + 0x10]
jns 0x10005aaf
push edx
push edx
push 0x6939
push 0x47a
mov byte [esp + 0x5e], bl
lea edx, [esp + 0x5e]
push 0x4751
mov cl, 1
call fcn.10004c9d
or dword [esp + 0x208], 0xffffffff
lea ecx, [esp + 0xa8]
add esp, 0x14
call fcn.10002048
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ebx
jle 0x100059ff
mov esi, dword [esp + 0x64]
cmp dword [esp + 0x5c], 0
jbe 0x10005e4e
sub esi, edi
mov ecx, dword [edi]
mov edx, ebx
and edx, 3
mov edx, dword [esp + edx*4 + 0x158]
call fcn.100048db
inc ebx
mov dword [edi + esi], eax
lea edi, [edi + 4]
cmp ebx, dword [esp + 0x5c]
jb 0x10005c77
jmp 0x10005e4e
mov dword [esp + 0xc], 0xfe64fd9e
lea ecx, [esp + 0x11c]
push 4
call fcn.10001fe6
mov dword [esp + 0x1f4], 7
lea ecx, [esp + 0x78]
mov dword [esp + 0x34], 0x4d0f
mov dword [esp + 0x40], 0x9a13
push 1
call fcn.10001fe6
mov byte [esp + 0x1f4], 8
lea ecx, [esp + 0x110]
mov dword [esp + 0x28], 0x4d99
push 1
call fcn.10001fe6
push 0xa98
lea eax, [esp + 0x28]
mov byte [esp + 0x1f8], 9
push eax
lea eax, [esp + 0x124]
push eax
push 1
push ecx
call fcn.10004d6e
xor edx, edx
mov dword [esp + 0x38], ebx
add esp, 0x14
inc edx
jmp 0x10005d37
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x78]
mov dword [eax + ecx*4], 0x9904
inc dword [esp + 0x24]
cmp dword [esp + 0x24], edx
jl 0x10005d24
mov dword [esp + 0x24], ebx
jmp 0x10005d56
mov eax, dword [esp + 0x24]
mov dword [esp + eax*4 + 0x128], 0xaf9031ea
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 3
jl 0x10005d43
mov dword [esp + 0x24], ebx
jmp 0x10005d79
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x110]
mov dword [eax + ecx*4], 0xf9491450
inc dword [esp + 0x24]
cmp dword [esp + 0x24], edx
jl 0x10005d63
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x11c]
mov dword [eax + 8], ecx
cmp dword [esp + 0xc], ecx
jl 0x10005df6
mov eax, dword [esp + 0x78]
cmp dword [eax], ebx
jne 0x10005da7
mov eax, ebx
cmp dword [esp + 0xc], ebx
je 0x10005da9
mov eax, edx
xor ecx, ecx
cmp eax, 0x3d37f4a1
mov eax, dword [esp + 0x12c]
setg cl
add eax, 0x25005768
inc dword [esp + 0x12c]
add eax, ecx
jne 0x10005dd4
mov eax, dword [esp + 0x78]
cmp dword [eax], ebx
jne 0x10005dd4
mov edx, ebx
mov eax, dword [esp + 0x28]
lea ecx, [edx - 0x6f9ee43d]
xor edx, edx
cmp ecx, eax
setne dl
sub edx, dword [esp + 0x34]
mov eax, dword [esp + 0x78]
neg edx
sbb edx, edx
inc edx
cmp edx, dword [eax]
je 0x10005dfa
mov dword [esp + 0x60], ebx
mov eax, dword [esp + 0xc]
xor ecx, ecx
cmp dword [esp + 0x60], eax
mov eax, dword [esp + 0x78]
setg cl
cmp ecx, dword [eax]
jne 0x10005e13
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x110]
mov dword [eax], ecx
lea ecx, [esp + 0x110]
call fcn.10002048
lea ecx, [esp + 0x78]
call fcn.10002048
lea ecx, [esp + 0x11c]
call fcn.10002048
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x1c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x1ec]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret