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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2d4
push ebx
mov dword [esp + 8], 0x1f66
push esi
or esi, 0xffffffff
xor eax, eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x1c], 0xfffffff9
mov dword [esp + 0x18], 0x718b2f10
push edi
mov dword [esp + 0x14], eax
jmp 0x4171f7
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x240], 0x7d214c40
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x4171e4
mov byte [esp + 0x1b], al
cmp byte [esp + 0x1b], al
je 0x41721d
push eax
push 0x1242
call dword [0xaab328]
push eax
call dword [0xaab33c]
xor eax, eax
mov ecx, dword [esp + 0x20]
xor ebx, ebx
dec dword [esp + 0x20]
inc ebx
cmp ecx, 0x3edb
mov ecx, ebx
push 3
cmove ecx, eax
pop edi
cmp dword [esp + 0x10], ecx
jg 0x4172b2
cmp dword [esp + 0x244], eax
jne 0x4172b2
mov dword [esp + 0xf0], 0x5af
mov dword [esp + 0xc0], 0x5c1f4aca
mov ecx, dword [esp + 0xf0]
mov dword [esp + 0xc0], ecx
mov ecx, dword [esp + 0x24c]
mov dword [esp + 0xc0], ecx
mov ecx, dword [esp + 0xf0]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
sub edx, ecx
mov ecx, dword [esp + 0xc0]
add esi, edx
xor edx, edx
cmp ecx, esi
setl dl
xor ecx, ecx
cmp edx, 0xc141
setle cl
or esi, 0xffffffff
mov dword [esp + 0x244], ecx
jmp 0x417396
mov dword [esp + 0x9c], 0x8eb16e2c
mov byte [esp + 0x53], al
cmp byte [esp + 0x53], 0
je 0x4172d1
push eax
call dword [0xaab318]
xor eax, eax
mov dword [esp + 0x14], 0xfffffff8
jmp 0x41738b
mov dword [esp + 0xa8], 0xfffffff7
mov dword [esp + 0x154], 0xfffffff6
mov dword [esp + 0x10], eax
jmp 0x41737d
mov dword [esp + 0x20], 6
mov edx, 0x8a87
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0x9c]
sub edx, ecx
mov ecx, dword [esp + 0x9c]
add ecx, edx
mov edx, dword [esp + 0xa8]
imul ecx, ecx, 0x2bc9
add edx, ecx
je 0x417346
mov ecx, eax
cmp dword [esp + 0xa8], eax
je 0x417348
mov ecx, ebx
cmp dword [esp + 0x20], ecx
jge 0x417352
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x9c]
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x240], ebx
mov ecx, dword [esp + 0x154]
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x9c], ecx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jle 0x4172fd
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xfffffff2
jg 0x4172de
mov dword [esp + 0x14], 0xfffffffd
mov dword [esp + 0x24], 0xd898
mov dword [esp + 0x10], eax
jmp 0x4173bf
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x2b4], 0x3dd3
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x4173ac
mov dword [esp + 0x14], eax
jmp 0x4173f2
mov dword [esp + 0x10], 0xa888adae
mov dword [esp + 0x10], eax
jmp 0x4173e8
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x2b4], esi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x4173d9
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jle 0x4173cb
mov dword [esp + 0xf8], 0x16542076
call fcn.00416b81
mov dword [esp + 0x48], 0xfffffffa
xor eax, eax
mov dword [esp + 0x14], 0x90c4d8e5
mov dword [esp + 0x10], eax
jmp 0x417430
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0xc8], edi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jl 0x417421
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], eax
jl 0x41750c
mov edi, dword [0xaab344]
mov dword [esp + 0x10], eax
jmp 0x417463
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0xc4], 0xd711e7bf
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jl 0x417450
mov ecx, dword [esp + 0x14]
cmp dword [esp + ecx*4 + 0xc8], eax
je 0x41747e
mov esi, ebx
cmp dword [esp + 0x14], eax
jne 0x417480
mov esi, eax
mov ecx, dword [esp + 0x14]
xor edx, edx
mov ecx, dword [esp + ecx*4 + 0xc8]
test ecx, ecx
sete dl
cmp esi, edx
jg 0x41749e
mov edx, ebx
cmp dword [esp + 0x14], eax
jne 0x4174a0
mov edx, eax
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc4]
mov ecx, dword [esp + 0xc4]
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0xc8], edx
or ecx, 0xffffffff
mov dword [esp + 0xc4], ecx
cmp edx, ecx
jl 0x4174df
mov byte [esp + 0x62], al
cmp byte [esp + 0x62], 0
je 0x4174ff
push eax
call dword [0xaab148]
jmp 0x4174fd
mov byte [esp + 0x5b], al
cmp byte [esp + 0x5b], 0
je 0x4174ef
push eax
call edi
xor eax, eax
mov byte [esp + 0x64], al
cmp byte [esp + 0x64], 0
je 0x4174ff
push eax
call edi
xor eax, eax
dec dword [esp + 0x14]
jns 0x41744a
push 3
pop edi
mov dword [esp + 0x84], 0xe19f23e5
lea ecx, [esp + 0x108]
push 4
call fcn.00413b3c
mov dword [esp + 0x34], ebx
mov eax, 0xffff
mov dword [esp + 0x20], eax
xor eax, eax
push 0xfffffffffffffff6
pop esi
mov dword [esp + 0x10], esi
mov dword [esp + 0x1c], 0x1fbb9cf7
mov dword [esp + 0x6c], 0xeded
mov dword [esp + 0x284], 0xa1e1cf2b
mov dword [esp + 0xa4], eax
jmp 0x417577
mov edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0x108]
mov dword [ecx + edx*4], esi
inc dword [esp + 0xa4]
cmp dword [esp + 0xa4], 4
jl 0x41755f
mov dword [esp + 0x34], edi
cmp dword [esp + 0x34], eax
jl 0x41769a
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x10], eax
jmp 0x4175b3
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0xd0], 7
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x4175a0
mov ecx, dword [esp + 0xd4]
or edx, 0xffffffff
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0xd0]
cmp edx, ecx
mov ecx, dword [esp + 0x108]
sbb edx, edx
xor ebx, ebx
neg edx
cmp dword [ecx + esi*4], edx
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0xd0]
setl bl
sub ebx, ecx
mov ecx, dword [esp + 0x108]
add edx, ebx
xor ebx, ebx
cmp dword [ecx + edi*4], edx
setl bl
xor edx, edx
mov dword [esp + 0x10], ebx
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x30]
cmp ecx, dword [ebx + 4]
setne dl
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x108]
cmp dword [ecx + edx*4], eax
jne 0x41764a
cmp dword [esp + 0xd4], eax
jne 0x41764a
xor ebx, ebx
mov edi, eax
inc ebx
jmp 0x41764f
xor ebx, ebx
inc ebx
mov edi, ebx
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x108]
mov esi, dword [ecx + edx*4]
xor edx, edx
mov ecx, dword [esp + 0x6c]
imul esi, edi
sub esi, ecx
mov ecx, dword [esp + 0xd0]
cmp ecx, esi
setg dl
cmp dword [esp + 0xd4], edx
jl 0x417687
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x1c], eax
jmp 0x41768b
cmp dword [esp + 0x20], eax
jne 0x417697
dec dword [esp + 0x34]
jns 0x41759a
push 3
pop edi
mov dword [esp + 0x34], 5
jmp 0x4176fe
mov dword [esp + 0x280], 0x6f9f1111
mov dword [esp + 0x290], eax
mov dword [esp + 0x6c], eax
cmp dword [esp + 0x6c], 0xfffffff1
jge 0x4176fa
or ecx, 0xffffffff
mov dword [esp + 0x190], 0xfffffffa
mov dword [esp + 0xdc], ecx
mov dword [esp + 0x194], edi
mov dword [esp + 0x190], 0xce40
mov dword [esp + 0x194], ebx
dec dword [esp + 0x6c]
cmp dword [esp + 0x6c], 0xfffffff1
jl 0x4176c4
inc dword [esp + 0x34]
cmp dword [esp + 0x34], 8
jne 0x4176a4
lea ecx, [esp + 0x108]
call fcn.00413c0e
mov dword [esp + 0x188], 0xb3ae3556
or eax, 0xffffffff
mov dword [esp + 0x24], 0xcd66a075
xor esi, esi
mov dword [esp + 0x24], 0xde661fbc
mov dword [esp + 0x24], eax
mov dword [esp + 0x24], 0x6d6dbc1c
mov dword [esp + 0x24], 0xb79ae4f7
mov dword [esp + 0x24], 0x722abac8
mov dword [esp + 0x10], esi
jmp 0x417766
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x2c0], 0xfffffff8
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x417753
lea ecx, [esp + 0x188]
call fcn.00416c4c
mov dword [esp + 0x10], esi
jmp 0x417792
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x12c], 0x971c1ec2
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x41777f
mov dword [esp + 0x14], 0x124f
lea ecx, [esp + 0x1c8]
push edi
call fcn.00413b3c
mov dword [esp + 0x10], 0xfffffff9
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], 0x3847d228
mov dword [esp + 0x30], 0x4bd1a6f3
mov dword [esp + 0x98], eax
jmp 0x4177f1
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x1c8]
mov dword [ecx + edx*4], 0x768c0aa3
inc dword [esp + 0x98]
cmp dword [esp + 0x98], edi
jl 0x4177d5
mov byte [esp + 0x1b], al
cmp byte [esp + 0x1b], al
je 0x417817
push eax
push 0x1a93
push 0x7ef
call dword [0xaab154]
xor eax, eax
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x1c8]
mov dword [edi + 4], ecx
test ecx, ecx
je 0x417a37
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c8]
mov dword [ecx + 8], edx
test edx, edx
jne 0x41787b
mov ecx, dword [edi + 4]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
cmp dword [edi + 4], ecx
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
setle dl
sub esi, edx
neg esi
sbb esi, esi
xor ebx, ebx
inc esi
cmp esi, ecx
mov ecx, dword [esp + 0x14]
setg bl
xor edx, edx
cmp ebx, ecx
setge dl
cmp edx, dword [esp + 0x14]
jge 0x41787b
mov esi, eax
jmp 0x41787e
xor esi, esi
inc esi
mov ecx, dword [esp + 0x14]
xor edx, edx
cmp esi, ecx
mov ecx, 0xffff
setge dl
sub edx, dword [esp + 0x14]
neg edx
sbb edx, edx
inc edx
cmp ecx, edx
sbb ecx, ecx
xor ebx, ebx
neg ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x20], ecx
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
cmp edx, ecx
setg bl
cmp ebx, dword [esp + 0x14]
jne 0x417a37
mov dword [esp + 0x14], 0xc21d
mov dword [esp + 0x10], eax
jmp 0x417a27
push 2
lea ecx, [esp + 0x208]
call fcn.00413b3c
xor eax, eax
mov dword [esp + 0x1c], 0x9ee48480
mov dword [esp + 0x44], eax
jmp 0x417900
mov ecx, dword [esp + 0x44]
mov dword [esp + ecx*4 + 0x8c], eax
inc dword [esp + 0x44]
cmp dword [esp + 0x44], 1
jl 0x4178f1
mov dword [esp + 0x44], eax
jmp 0x417923
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x204]
mov dword [ecx + edx*4], 0x93db2a25
inc dword [esp + 0x44]
cmp dword [esp + 0x44], 2
jl 0x41790d
cmp dword [esp + 0x8c], eax
jne 0x4179dc
mov ecx, dword [esp + 0x14]
xor edx, edx
cmp ecx, 6
mov ecx, dword [esp + 0x204]
setl dl
xor ebx, ebx
mov dword [ecx], edx
add edx, 0x486c8a19
mov ecx, dword [esp + 0x14]
cmp edx, ecx
mov ecx, 0x9db650f8
mov dword [edi + 4], edx
setge bl
cmp ecx, ebx
sbb ecx, ecx
neg ecx
sub ecx, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
xor ebx, ebx
inc ecx
cmp ecx, 0x6695
mov ecx, dword [esp + 0x20]
setge bl
xor edx, edx
cmp ebx, ecx
setge dl
cmp edx, 8
jle 0x417993
mov esi, eax
jmp 0x417996
xor esi, esi
inc esi
mov ecx, dword [esp + 0x20]
xor edx, edx
cmp esi, ecx
setge dl
cmp edx, 0xa92ed160
jne 0x4179b3
cmp dword [esp + 0x10], eax
jne 0x4179b3
mov ecx, eax
jmp 0x4179b6
xor ecx, ecx
inc ecx
cmp ecx, 0xfffe
mov ecx, dword [esp + 0x30]
sbb edx, edx
xor ebx, ebx
neg edx
cmp ecx, edx
setge bl
add ebx, dword [esp + 0x14]
jne 0x4179d5
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x14]
sub edx, ecx
neg edx
sbb edx, edx
inc edx
cmp edx, 0x3289
je 0x417a04
cmp dword [esp + 0x8c], eax
je 0x417a04
xor ecx, ecx
inc ecx
jmp 0x417a06
mov ecx, eax
xor eax, eax
cmp ecx, 0xfffffff7
lea ecx, [esp + 0x204]
setle al
add eax, 0x71fccbb
mov dword [esp + 0x1c], eax
call fcn.00413c0e
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x34
jle 0x4178d3
jmp 0x417aef
push dword [esp + 0xdc]
movdqa xmm0, xmmword [0xaa1cc0]
lea ecx, [esp + 0x2b8]
push ecx
lea ecx, [esp + 0x2ac]
mov dword [esp + 0x2c], 0x548aab56
push ecx
mov dword [esp + 0x30], 0xae215169
lea ecx, [esp + 0x1bc]
push eax
movdqu xmmword [esp + 0x2b4], xmm0
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1c8], eax
call fcn.00415097
mov dword [esp + 0x24], 0xbd47
mov dword [esp + 0xf4], 0x6862eae
inc dword [esp + 0xf4]
mov dword [esp + 0x10], 0xfffffff3
cmp dword [esp + 0x10], 7
jl 0x417ae3
xor eax, eax
mov byte [esp + 0x1b], al
cmp byte [esp + 0x1b], 0
je 0x417ad8
push eax
push 0x262b
push eax
push eax
push eax
call dword [0xaab168]
xor eax, eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 7
jge 0x417abc
lea ecx, [esp + 0x1b0]
call fcn.00413c0e
lea ecx, [esp + 0x1c8]
call fcn.00413c0e
mov ecx, dword [esp + 0x130]
xor edx, edx
mov eax, dword [esp + 0xf8]
cmp ecx, eax
push 3
setl dl
xor eax, eax
cmp edx, 5
pop ebx
setge al
xor edx, edx
imul ecx, eax, 0xffff
mov eax, dword [esp + 0x130]
add eax, 9
add eax, ecx
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x138]
mov eax, dword [esp + 0x48]
cmp eax, ecx
mov eax, dword [esp + 0x130]
setle dl
xor ecx, ecx
cmp eax, edx
setl cl
xor eax, eax
xor edi, edi
mov dword [esp + 0x84], ecx
mov dword [esp + 0x48], eax
inc edi
cmp dword [esp + 0x48], 0x19
jl 0x418b07
mov dword [esp + 0x30], 0xc844fc37
mov dword [esp + 0x10], eax
jmp 0x417b89
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0xac], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jl 0x417b7a
mov byte [esp + 0x60], al
cmp byte [esp + 0x60], 0
je 0x417ba7
push 0x1436
push eax
push eax
call dword [0xaab14c]
mov dword [esp + 0xb4], 0xfffffffb
cmp dword [esp + 0xb4], 9
jl 0x417da5
mov dword [esp + 0x10], 0xbe44
lea ecx, [esp + 0x1bc]
push 4
call fcn.00413b3c
mov dword [esp + 0x20], 0x84515fdc
xor eax, eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x94], eax
jmp 0x417c05
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0x1bc]
mov dword [ecx + edx*4], edi
inc dword [esp + 0x94]
cmp dword [esp + 0x94], 4
jl 0x417bed
mov esi, eax
cmp dword [esp + 0xb4], eax
je 0x417c1c
mov esi, edi
mov edi, dword [esp + 0x1bc]
or ecx, 0xffffffff
xor edx, edx
mov dword [edi + 4], eax
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0xac]
cmp esi, ecx
mov ecx, dword [esp + 0xb4]
setl dl
xor ebx, ebx
cmp edx, ecx
mov ecx, dword [esp + 0x20]
setg bl
xor edx, edx
test ecx, ecx
sets dl
xor ecx, ecx
cmp edx, ebx
setge cl
xor edx, edx
cmp ecx, 0xbdebf889
mov ecx, dword [esp + 0xb4]
setne dl
xor ebx, ebx
neg edx
cmp ecx, edx
mov ecx, dword [esp + 0x10]
setle bl
xor edx, edx
neg ecx
cmp ecx, ebx
setl dl
mov dword [esp + 0x20], edx
cmp dword [esp + 0x20], eax
je 0x417d16
mov dword [esp + 0x14], 5
mov dword [esp + 0x1c], 0xd6b22149
cmp dword [edi + 4], eax
je 0x417d10
mov esi, dword [esp + 0x1bc]
cmp dword [esi + 0xc], eax
je 0x417d10
mov ecx, dword [esp + 0x10]
xor edx, edx
mov ecx, dword [esp + 0x20]
cmp ecx, 0x5a26cdee
mov ecx, dword [esp + 0x10]
setne dl
xor ebx, ebx
cmp edx, ecx
mov edx, dword [esp + 0xb4]
mov ecx, dword [esp + 0xb4]
setl bl
add edx, 4
add ebx, dword [esi + 0xc]
add edx, ebx
xor ebx, ebx
cmp edx, ecx
setne bl
mov dword [esp + 0x14], ebx
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0xb0]
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x1c], eax
je 0x417d0d
mov eax, dword [esp + 0xb4]
xor eax, eax
inc eax
mov dword [esp + 0x30], eax
jmp 0x417d7e
mov byte [esp + 0x1b], al
cmp byte [esp + 0x1b], al
je 0x417d54
push 0x239f
push 0x3de
push 0x2673
push 0x1775
push 0x713
push 0x1c32
call dword [0xaab328]
push eax
call dword [0xaab314]
push eax
call dword [0xaab060]
xor eax, eax
mov byte [esp + 0x61], al
cmp byte [esp + 0x61], 0
je 0x417d7e
push eax
push 0x1796
push 0x670
call dword [0xaab328]
push eax
call dword [0xaab314]
push eax
call dword [0xaab05c]
lea ecx, [esp + 0x1bc]
call fcn.00413c0e
inc dword [esp + 0xb4]
cmp dword [esp + 0xb4], 9
push 1
pop edi
jge 0x417bc0
push 3
pop ebx
mov dword [esp + 0x4c], 0x548aab56
lea ecx, [esp + 0x21c]
mov dword [esp + 0x14], 4
mov dword [esp + 0x1c], 0xe9ab5c29
push edi
call fcn.00413b3c
mov dword [esp + 0x24], 0x69cd17cd
xor eax, eax
mov dword [esp + 0x24], eax
or esi, 0xffffffff
mov dword [esp + 0x24], 0xfffffffc
mov dword [esp + 0x24], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x24], 0x8a064f57
mov dword [esp + 0x24], 0xf0d30663
mov dword [esp + 0x100], eax
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x3c], ebx
jge 0x417e1d
mov ecx, dword [esp + 0x3c]
mov dword [esp + ecx*4 + 0x120], esi
inc dword [esp + 0x3c]
jmp 0x417e06
mov dword [esp + 0x3c], eax
jmp 0x417e39
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x21c]
mov dword [ecx + edx*4], 0x24b969b4
inc dword [esp + 0x3c]
cmp dword [esp + 0x3c], edi
jl 0x417e23
mov dword [esp + 0x14], 2
cmp dword [esp + 0x14], eax
jl 0x417f0c
mov dword [esp + 0x1c], esi
mov dword [esp + 0x1c], 0x734cb441
mov ecx, dword [esp + 0x14]
cmp dword [esp + ecx*4 + 0x120], esi
jbe 0x417e84
mov ecx, dword [esp + 0x14]
xor edx, edx
mov ecx, dword [esp + ecx*4 + 0x120]
test ecx, ecx
setle dl
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
xor edx, edx
mov ecx, dword [esp + ecx*4 + 0x120]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + ecx*4 + 0x120]
cmp ecx, 0xfffffffd
sete dl
mov dword [esp + 0x1c], edx
xor edx, edx
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + ecx*4 + 0x120]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
cmp ecx, edi
setge dl
neg edx
jne 0x417ecc
mov esi, eax
cmp dword [esp + 0x14], eax
je 0x417ece
mov esi, edi
mov ecx, dword [esp + 0x128]
xor edx, edx
cmp esi, ecx
push 0xffffffffffffffff
setne dl
mov dword [esp + 0x20], edx
mov ecx, dword [esp + 0x18]
pop esi
mov ecx, dword [esp + ecx*4 + 0x120]
mov edx, dword [esp + 0x1c]
sub edx, ecx
mov ecx, dword [esp + 0x21c]
neg edx
sbb edx, edx
inc edx
mov dword [ecx], edx
dec dword [esp + 0x14]
jns 0x417e51
dec dword [esp + 0x100]
lea ecx, [esp + 0x21c]
call fcn.00413c0e
mov dword [esp + 0xbc], 0x69ff4caa
xor esi, esi
mov dword [esp + 0x30], 0x63cfebda
mov dword [esp + 0x1c], 0xfffd
mov dword [esp + 0x68], esi
cmp dword [esp + 0x138], esi
je 0x4185b9
mov eax, dword [esp + 0x4c]
mov eax, dword [esp + 0xbc]
mov eax, dword [esp + 0x4c]
mov eax, dword [esp + 0x130]
mov eax, dword [esp + 0x4c]
mov eax, dword [esp + 0x4c]
mov eax, dword [esp + 0xbc]
mov eax, dword [esp + 0x134]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x84]
mov eax, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x138]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
or eax, 0xffffffff
cmp dword [esp + 0x138], eax
je 0x4185b9
mov dword [esp + 0xe0], 0xeae26468
lea ecx, [esp + 0x264]
mov dword [esp + 0x54], 0xfffc
mov dword [esp + 0x1a8], 0x515466b
push 2
call fcn.00413b3c
mov dword [esp + 0x40], esi
jmp 0x417ffa
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x264]
mov dword [eax + ecx*4], 0xb6dad816
inc dword [esp + 0x40]
cmp dword [esp + 0x40], 2
jl 0x417fe4
mov dword [esp + 0x40], esi
jmp 0x41801a
mov eax, dword [esp + 0x40]
mov dword [esp + eax*4 + 0x270], 0xe3d3b0cf
inc dword [esp + 0x40]
cmp dword [esp + 0x40], ebx
jl 0x418007
mov eax, dword [esp + 0x54]
mov ecx, 0x94964a53
mov eax, dword [esp + 0x54]
mov eax, dword [esp + 0x54]
mov eax, dword [esp + 0x54]
mov eax, dword [esp + 0x54]
mov eax, dword [esp + 0x54]
cmp ecx, eax
mov eax, dword [esp + 0x54]
sbb ecx, ecx
neg ecx
add eax, ecx
lea ecx, [esp + 0x264]
mov dword [esp + 0x1a8], eax
dec dword [esp + 0x270]
call fcn.00413c0e
push ebx
lea ecx, [esp + 0x1d8]
call fcn.00413b3c
xor eax, eax
mov dword [esp + 0x78], 0x8ade19d2
mov dword [esp + 0x10], eax
jmp 0x41808f
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x2d4], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jl 0x418080
mov byte [esp + 0x1b], al
cmp byte [esp + 0x1b], al
je 0x4180a9
push eax
push eax
call dword [0xaab174]
xor eax, eax
mov dword [esp + 0x78], eax
jmp 0x4180bf
mov dword [esp + 0x1c], 0xfffffffd
inc dword [esp + 0x1c]
inc dword [esp + 0x78]
cmp dword [esp + 0x78], 2
jle 0x4180af
mov dword [esp + 0x184], edi
lea ecx, [esp + 0x258]
push ebx
call fcn.00413b3c
xor esi, esi
mov dword [esp + 0x1a0], 0xfffffffc
mov dword [esp + 0x90], esi
jmp 0x41810c
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x258]
mov dword [eax + ecx*4], 0xfdf99ff6
inc dword [esp + 0x90]
cmp dword [esp + 0x90], ebx
jl 0x4180f0
lea ecx, [esp + 0x1a0]
call fcn.00417012
lea ecx, [esp + 0x258]
call fcn.00413c0e
mov dword [esp + 0x180], 0xa4aeca2a
call fcn.00416d5b
push dword [esp + 0xdc]
movdqa xmm0, xmmword [0xaa1d20]
lea ecx, [esp + 0x2a8]
push ecx
xor eax, eax
lea ecx, [esp + 0x29c]
push ecx
push eax
lea ecx, [esp + 0x14c]
mov dword [esp + 0x14c], eax
movdqu xmmword [esp + 0x2a4], xmm0
mov dword [esp + 0x150], eax
mov dword [esp + 0x154], eax
call fcn.00415097
xor esi, esi
lea ecx, [esp + 0x1e0]
mov dword [esp + 0x1c], esi
push edi
call fcn.00413b3c
xor eax, eax
mov dword [esp + 0x24], 0x59c3
mov dword [esp + 0x28], eax
jmp 0x4181bf
mov ecx, dword [esp + 0x28]
mov dword [esp + ecx*4 + 0x80], 0xfffffffe
inc dword [esp + 0x28]
cmp dword [esp + 0x28], edi
jl 0x4181ac
push 2
mov dword [esp + 0x2c], eax
pop esi
jmp 0x4181e1
mov ecx, dword [esp + 0x28]
mov dword [esp + ecx*4 + 0xe8], 0xfffffffe
inc dword [esp + 0x28]
cmp dword [esp + 0x28], esi
jl 0x4181ce
mov dword [esp + 0x28], eax
jmp 0x418203
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x1e0]
mov dword [ecx + edx*4], 0x36fc75df
inc dword [esp + 0x28]
cmp dword [esp + 0x28], edi
jl 0x4181ed
mov dword [esp + 0x28], eax
jmp 0x41821e
mov ecx, dword [esp + 0x28]
mov dword [esp + ecx*4 + 0x250], edi
inc dword [esp + 0x28]
cmp dword [esp + 0x28], esi
jl 0x41820f
mov dword [esp + 0x80], 0xfffffff9
mov dword [esp + 0xec], eax
cmp dword [esp + 0xec], 0xfffffff1
jg 0x41838f
mov esi, dword [esp + 0x13c]
push 0xfffffffffffffff8
pop ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], 0xfffffff6
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], eax
jmp 0x418277
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x288], 0x9c4ad153
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x418264
mov byte [esp + 0x1b], al
cmp byte [esp + 0x1b], 0
je 0x418293
push eax
push eax
call dword [0xaab150]
xor eax, eax
mov ecx, dword [esp + 0x10]
xor edx, edx
cmp dword [esi + 8], ecx
mov ecx, dword [esp + 0x80]
sete dl
xor ebx, ebx
cmp edx, ecx
mov ecx, dword [esp + 0x10]
setne bl
xor edx, edx
cmp ebx, ecx
setl dl
cmp edx, dword [esp + 0x80]
jl 0x4182c8
mov edx, edi
cmp dword [esi + 8], eax
jne 0x4182ca
mov edx, eax
mov ecx, dword [esp + 0x10]
add edx, 0xfffffff9
xor ebx, ebx
cmp ecx, edx
mov ecx, dword [esp + 0x10]
setle bl
xor edx, edx
cmp ebx, ecx
mov ecx, dword [esp + 0x80]
setl dl
xor ebx, ebx
imul edx, ecx
mov ecx, dword [esp + 0x10]
cmp edx, ecx
mov ecx, dword [esp + 0x10]
setl bl
xor edx, edx
cmp ebx, ecx
setne dl
xor ebx, ebx
sub edx, dword [esp + 0x10]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x1c]
sub edx, dword [esi + 8]
mov ecx, dword [esp + 0x20]
cmp edx, ecx
mov ecx, dword [esp + 0x13c]
setge bl
xor edx, edx
cmp ebx, dword [ecx]
mov ecx, dword [esp + 0x10]
setg dl
add edx, ecx
mov ecx, dword [esp + 0x1e0]
mov dword [ecx], edx
je 0x418347
mov edx, edi
cmp dword [esp + 0x80], eax
jne 0x418349
mov edx, eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, edx
test ecx, ecx
je 0x418364
mov ecx, edi
cmp dword [esp + 0x20], eax
jne 0x418366
mov ecx, eax
mov dword [esp + 0x288], ecx
mov dword [esp + 0x250], ecx
dec dword [esp + 0xec]
cmp dword [esp + 0xec], 0xfffffff1
jle 0x41824b
push 3
pop ebx
push 2
pop esi
lea ecx, [esp + 0x1e0]
call fcn.00413c0e
lea ecx, [esp + 0x13c]
call fcn.00413c0e
lea eax, [esp + 0x27c]
push eax
lea edx, [esp + 0x1d8]
call fcn.00418c99
mov eax, dword [esp + 0x50]
xor edx, edx
pop ecx
mov ecx, dword [esp + 0x1d4]
cmp dword [ecx + 4], eax
mov eax, dword [esp + 0xe0]
setge dl
xor ecx, ecx
cmp eax, edx
lea eax, [esp + 0x180]
push eax
lea eax, [esp + 0x6c]
setge cl
push eax
lea eax, [esp + 0x50]
mov dword [esp + 0x54], ecx
push eax
lea eax, [esp + 0xec]
xor dl, dl
push eax
lea eax, [esp + 0x1e4]
push eax
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x9c]
push eax
lea eax, [esp + 0x114]
push eax
lea eax, [esp + 0x1a4]
push eax
lea ecx, [esp + 0xe0]
call fcn.004190f1
add esp, 0x24
mov dword [esp + 0x2c], 0x24f01c08
xor eax, eax
mov dword [esp + 0x14], 0x9200
mov dword [esp + 0x10], eax
jmp 0x41845c
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x160], 0x9a3d
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jl 0x418449
cmp dword [esp + 0x2c], eax
je 0x418529
mov dword [esp + 0x30], 0xfffffff6
mov dword [esp + 0x24], 0xfffffffd
mov dword [esp + 0x1c], 0x67356a0b
mov dword [esp + 0x20], 8
mov dword [esp + 0x24], 0x42bb
mov dword [esp + 0x1c], 0xcaeaba4a
mov dword [esp + 0x10], eax
jmp 0x4184b5
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x18c], 0xffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x4184a2
mov dword [esp + 0x2c], eax
jmp 0x4184d2
mov ecx, dword [esp + 0x2c]
cmp dword [esp + ecx*4 + 0x160], eax
jne 0x4184d8
inc dword [esp + 0x2c]
cmp dword [esp + 0x2c], esi
jle 0x4184c1
mov ecx, dword [esp + 0x2c]
xor edx, edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x30]
cmp ecx, edi
setl dl
add edx, dword [esp + 0x2c]
jne 0x4184f5
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x18c]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x168]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x1c], ecx
jmp 0x418565
mov dword [esp + 0x2c], eax
jmp 0x41855f
mov byte [esp + 0x63], al
cmp byte [esp + 0x63], 0
je 0x41855b
push eax
push 0x216b
push 0x943
call dword [0xaab328]
push eax
call dword [0xaab314]
push eax
call dword [0xaab040]
xor eax, eax
inc dword [esp + 0x2c]
cmp dword [esp + 0x2c], edi
jl 0x41852f
mov dword [esp + 0x14], eax
jmp 0x4185a2
mov dword [esp + 0x2c], eax
jmp 0x418582
mov ecx, dword [esp + 0x14]
cmp dword [esp + ecx*4 + 0x160], eax
jne 0x418588
inc dword [esp + 0x2c]
cmp dword [esp + 0x2c], esi
jle 0x418571
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + ecx*4 + 0x160]
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x160], edx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jle 0x41856b
lea ecx, [esp + 0x1d4]
call fcn.00413c0e
jmp 0x418809
push ebx
lea ecx, [esp + 0x238]
call fcn.00413b3c
xor eax, eax
mov dword [esp + 0x38], eax
jmp 0x4185e4
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x234]
mov dword [ecx + edx*4], 0x41b3
inc dword [esp + 0x38]
cmp dword [esp + 0x38], ebx
jl 0x4185ce
mov dword [esp + 0x38], eax
jmp 0x4185ff
mov ecx, dword [esp + 0x38]
mov dword [esp + ecx*4 + 0x114], ebx
inc dword [esp + 0x38]
cmp dword [esp + 0x38], ebx
jl 0x4185f0
push 2
pop esi
mov dword [esp + 0x11c], eax
cmp dword [esp + 0x11c], esi
jg 0x418691
or ebx, 0xffffffff
mov dword [esp + 0x10], ebx
mov byte [esp + 0x1b], al
cmp byte [esp + 0x1b], 0
je 0x418640
call dword [0xaab328]
push eax
call dword [0xaab314]
push eax
call dword [0xaab054]
xor eax, eax
mov dword [esp + 0x10], eax
jmp 0x418678
mov edx, dword [esp + 0x11c]
mov ecx, dword [esp + 0x234]
cmp dword [ecx + edx*4], eax
jne 0x41867e
mov byte [esp + 0x65], al
cmp byte [esp + 0x65], 0
je 0x418674
push eax
call dword [0xaab328]
push eax
call dword [0xaab2fc]
xor eax, eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jle 0x418646
inc dword [esp + 0x11c]
cmp dword [esp + 0x11c], esi
jle 0x41861b
push 3
pop ebx
or esi, 0xffffffff
lea ecx, [esp + 0x234]
mov dword [esp + 0x114], esi
call fcn.00413c0e
mov byte [esp + 0x52], 0
mov dword [esp + 0x10], 0x57fd5464
mov dword [esp + 0x30], esi
mov dword [esp + 0x24], 0x60e77906
mov dword [esp + 0x10], 0x13
jmp 0x4187f5
mov dword [esp + 0x20], 0x669
mov dword [esp + 0x1c], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], 0
jmp 0x4186fa
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x2c8], 0xadf29855
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ebx
jl 0x4186e7
mov eax, dword [esp + 0x20]
add eax, dword [esp + 0x30]
imul eax, dword [esp + 0x20]
neg eax
sbb eax, eax
xor edx, edx
neg eax
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
cmp ecx, eax
mov eax, 0xffff
setge dl
sub edx, eax
mov eax, dword [esp + 0x10]
cmp edx, edi
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setl cl
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x1c], 0
je 0x4187c2
push ebx
lea ecx, [esp + 0x1f0]
call fcn.00413b3c
xor eax, eax
mov dword [esp + 0xa0], eax
jmp 0x41877c
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0x1ec]
mov dword [ecx + edx*4], 0xd924
inc dword [esp + 0xa0]
cmp dword [esp + 0xa0], ebx
jl 0x418760
mov byte [esp + 0x67], al
cmp byte [esp + 0x67], al
je 0x4187aa
push 0x260b
push eax
push eax
call dword [0xaab328]
push eax
call dword [0xaab314]
push eax
call dword [0xaab04c]
mov eax, dword [esp + 0x1ec]
lea ecx, [esp + 0x1ec]
dec dword [eax + 4]
call fcn.00413c0e
jmp 0x4187f1
cmp dword [esp + 0x20], 0
jne 0x418800
mov byte [esp + 0x1b], 0
cmp byte [esp + 0x1b], 0
je 0x4187f1
push 0
push 0x1622
push 0x1180
push 0x10e3
push 0x198a
call dword [0xaab048]
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xffffffe9
jne 0x4186cd
lea ecx, [esp + 0x52]
call fcn.00415a1c
mov dword [esp + 0x68], 0xffffffe3
cmp dword [esp + 0x68], 0x17
jne 0x418af5
xor esi, esi
push ebx
lea ecx, [esp + 0x22c]
call fcn.00413b3c
mov dword [esp + 0x158], 8
lea ecx, [esp + 0x170]
push edi
call fcn.00413b3c
mov dword [esp + 0x198], 0xc971708
mov dword [esp + 0xcc], 4
mov dword [esp + 0x15c], 0xfff7
mov dword [esp + 0x19c], 0x7a7919ee
mov dword [esp + 0x24], 0x4ecb9a7b
mov dword [esp + 0x88], esi
jmp 0x41889c
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x170]
mov dword [eax + ecx*4], 0xc0dcee05
inc dword [esp + 0x88]
cmp dword [esp + 0x88], edi
jl 0x418880
lea edx, [esp + 0x170]
lea ecx, [esp + 0x158]
call fcn.00416de4
mov eax, dword [esp + 0x170]
mov ecx, dword [eax]
xor eax, eax
test ecx, ecx
setne al
add eax, ecx
mov dword [esp + 0xcc], eax
cmp dword [esp + 0xcc], esi
je 0x4188dc
mov esi, edi
mov eax, dword [esp + 0x170]
xor ecx, ecx
mov edx, dword [eax]
cmp esi, edx
setle cl
xor eax, eax
cmp ecx, edx
setne al
cmp eax, 0x7891
jl 0x418901
mov eax, dword [esp + 0x198]
mov eax, dword [esp + 0x15c]
xor ecx, ecx
test eax, eax
setg cl
sub ecx, 0x253a1071
mov dword [esp + 0x19c], ecx
lea ecx, [esp + 0x170]
call fcn.00413c0e
mov dword [esp + 0x17c], 0x1763
lea ecx, [esp + 0x1f8]
mov dword [esp + 0x1a4], 0xa8628405
push edi
call fcn.00413b3c
xor eax, eax
mov dword [esp + 0x16c], 0xf59ec134
mov dword [esp + 0x70], eax
jmp 0x418974
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x1f8]
mov dword [ecx + edx*4], 0xda18461e
inc dword [esp + 0x70]
cmp dword [esp + 0x70], edi
jl 0x41895e
mov byte [esp + 0x66], al
cmp byte [esp + 0x66], al
je 0x41898b
push eax
call dword [0xaab160]
lea eax, [esp + 0x16c]
push eax
lea eax, [esp + 0x1a8]
push eax
lea edx, [esp + 0x200]
lea ecx, [esp + 0x184]
call fcn.00417097
pop ecx
pop ecx
lea ecx, [esp + 0x1f8]
call fcn.00413c0e
xor esi, esi
mov dword [esp + 0x74], esi
jmp 0x4189da
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x228]
mov dword [eax + ecx*4], 0xbbcb
inc dword [esp + 0x74]
cmp dword [esp + 0x74], ebx
jl 0x4189c4
mov dword [esp + 0xb8], 0x8901f2c2
lea ecx, [esp + 0x210]
mov dword [esp + 0xe4], 0x26d8d38
mov dword [esp + 0xd8], 5
mov dword [esp + 0xfc], 0xa4e66596
mov dword [esp + 0x104], 0xfffffffa
push ebx
call fcn.00413b3c
mov dword [esp + 0x7c], esi
jmp 0x418a40
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x210]
mov dword [eax + ecx*4], 0xec93cc25
inc dword [esp + 0x7c]
cmp dword [esp + 0x7c], ebx
jl 0x418a2a
cmp dword [esp + 0xb8], 0x912491e2
jne 0x418a8b
cmp dword [esp + 0xb8], esi
jne 0x418a84
mov eax, dword [esp + 0xb8]
add eax, 0xbb6b
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0xd8]
mov eax, dword [esp + 0xe4]
mov eax, dword [esp + 0xfc]
mov eax, dword [esp + 0xfc]
mov eax, dword [esp + 0xd8]
xor edx, edx
mov dword [esp + 0x104], eax
mov ecx, dword [esp + 0x104]
mov eax, dword [esp + 0xb8]
add ecx, 0xc71b7952
cmp eax, ecx
mov eax, dword [esp + 0x210]
lea ecx, [esp + 0x210]
setle dl
mov dword [eax + 4], edx
call fcn.00413c0e
mov eax, dword [esp + 0x228]
lea ecx, [esp + 0x228]
mov eax, dword [eax]
mov dword [esp + 0x84], eax
call fcn.00413c0e
inc dword [esp + 0x68]
cmp dword [esp + 0x68], 0x17
je 0x41881e
inc dword [esp + 0x48]
cmp dword [esp + 0x48], 0x19
push 0
pop eax
jge 0x417b6c
mov dword [esp + 0x14], 0xfffffffe
mov dword [esp + 0x30], 0x7c57f39c
mov dword [esp + 0x14], 0xfffffffd
jmp 0x418c87
mov dword [esp + 0x5c], edi
mov dword [esp + 0x10], eax
jmp 0x418b3d
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x148], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jl 0x418b2e
mov edx, dword [esp + 0x14]
xor ebx, ebx
mov ecx, dword [esp + 0x14]
cmp edx, ecx
mov ecx, dword [esp + 0x5c]
setle bl
xor edx, edx
cmp ecx, ebx
mov ecx, dword [esp + 0x148]
setle dl
mov dword [esp + 0x24], edx
xor edx, edx
cmp dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x148]
setne dl
imul ecx, edx
cmp ecx, 0xfffffffb
jl 0x418c47
or ecx, 0xffffffff
mov dword [esp + 0x20], ecx
mov dword [esp + 0x30], 9
mov dword [esp + 0x10], eax
jmp 0x418ba8
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x1ac], edi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x418b99
cmp dword [esp + 0x148], eax
je 0x418c14
cmp dword [esp + 0x14], eax
je 0x418c07
mov ecx, dword [esp + 0x150]
xor ebx, ebx
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
cmp edx, ecx
mov ecx, dword [esp + 0x20]
setle bl
xor edx, edx
cmp ebx, edi
setg dl
sub ecx, dword [esp + 0x14]
imul edx, ecx
dec dword [esp + 0x20]
test edx, edx
je 0x418bf9
mov ecx, edi
cmp dword [esp + 0x5c], eax
jne 0x418bfb
mov ecx, eax
mov dword [esp + 0x30], ecx
mov ecx, edi
cmp dword [esp + 0x30], eax
jne 0x418c09
mov ecx, eax
mov esi, edi
cmp ecx, dword [esp + 0x1ac]
jl 0x418c16
mov esi, eax
mov ecx, dword [esp + 0x148]
xor edx, edx
cmp esi, ecx
mov ecx, dword [esp + 0x14]
setle dl
xor ebx, ebx
cmp edx, 0x9c25
setg bl
xor edx, edx
imul ecx, ebx
cmp ecx, 0xfffffffa
setne dl
mov dword [esp + 0x148], edx
jmp 0x418c55
mov dword [esp + 0x24], 0x46b51f0e
cmp dword [esp + 0x24], eax
jne 0x418c92
mov dword [esp + 0x5c], eax
jmp 0x418c79
mov byte [esp + 0x1b], al
cmp byte [esp + 0x1b], 0
je 0x418c75
call dword [0xaab328]
push eax
call dword [0xaab300]
xor eax, eax
inc dword [esp + 0x5c]
cmp dword [esp + 0x5c], 9
jge 0x418c5b
inc dword [esp + 0x14]
push 3
pop ebx
cmp dword [esp + 0x14], 0xa
jg 0x418b24
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret