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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x574
push ebx
push esi
push edi
push 2
pop ebx
push 8
mov dword [esp + 0x3c], ebx
pop eax
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x408]
mov dword [esp + 0x10], 0x730f94f3
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], 0x3a92bd42
push ebx
mov dword [esp + 0x5c], edx
call fcn.004013f7
mov dword [esp + 0x54], 0xdc4b6369
xor eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x44], 0xfffffff7
mov dword [esp + 0x50], 9
mov dword [esp + 0x18], eax
jmp 0x401c47
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x78], 0x3d9532bb
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ebx
jl 0x401c37
mov dword [esp + 0x18], eax
jmp 0x401c69
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x408]
mov dword [ecx + edx*4], 0xd38951fe
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ebx
jl 0x401c53
push 3
mov dword [esp + 0x1c], eax
pop edi
jmp 0x401c8b
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x4fc], 0xfffffffc
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x401c78
mov ecx, dword [esp + 0x38]
xor esi, esi
mov dword [esp + 0x10], ecx
inc esi
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], esi
jg 0x401e7f
jmp 0x401cae
xor eax, eax
mov dword [esp + 0x30], 9
lea ecx, [esp + 0x438]
mov dword [esp + 0x40], 0xfffffffd
mov dword [esp + 0x24], eax
mov dword [esp + 0x3c], 0xb07d0d1d
push esi
call fcn.004013f7
xor eax, eax
mov dword [esp + 0x48], 0xffff
mov dword [esp + 0x14], eax
jmp 0x401cfd
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x438]
mov dword [ecx + edx*4], 0x236728ad
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x401ce7
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x38]
sub edx, ecx
neg edx
sbb edx, edx
xor ebx, ebx
inc edx
sub edx, dword [esp + 0x24]
sub edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x38]
cmp edx, ecx
mov ecx, dword [esp + 0x10]
setge bl
mov edx, dword [esp + ecx*4 + 0x78]
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x78], edx
mov dword [esp + 0x14], edx
cmp dword [esp + 0x14], ebx
jle 0x401d9f
mov dword [esp + 0x4c], eax
mov dword [esp + 0x4c], 0x7223b16a
mov dword [esp + 0x4c], 0x6c715341
mov dword [esp + 0x4c], esi
mov dword [esp + 0x4c], 0xfffffffd
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], esi
jge 0x401d99
push 8
pop ecx
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x158], ecx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x401d84
dec dword [esp + 0x2c]
jmp 0x401daf
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x78], ecx
cmp dword [esp + 0x10], esi
push 8
sbb ecx, ecx
xor edx, edx
neg ecx
sub ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x28]
cmp eax, ecx
mov eax, dword [esp + 0x4c]
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x14]
setg cl
sub ecx, dword [esp + eax*4 + 0x7c]
pop eax
sub ecx, eax
mov eax, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, 0xebb9
setge dl
xor ecx, ecx
add edx, dword [esp + eax*4 + 0x78]
mov eax, dword [esp + 0x44]
cmp eax, edx
mov eax, dword [esp + 0x20]
setg cl
xor edx, edx
cmp ecx, eax
setl dl
xor eax, eax
cmp edx, 0xd954
mov dword [esp + 0x7c], edx
setge al
xor ecx, ecx
cmp eax, 0x1fbf
mov eax, dword [esp + 0x44]
setge cl
sub eax, ecx
lea ecx, [esp + 0x438]
sub eax, dword [esp + 0x50]
add eax, dword [esp + 0x54]
neg eax
sbb eax, eax
neg eax
imul eax, eax, 0x9d33
sub eax, dword [esp + 0x44]
neg eax
sbb eax, eax
inc eax
sub eax, dword [esp + 0x30]
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x20], eax
call fcn.004014c9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jle 0x401cac
push 2
pop ebx
lea ecx, [esp + 0x408]
call fcn.004014c9
mov dword [esp + 0x44], 0xd23b
lea ecx, [esp + 0x2b8]
mov dword [esp + 0x24], 0
push ebx
call fcn.004013f7
mov dword [esp + 0x2c], esi
lea ecx, [esp + 0x210]
mov dword [esp + 0x40], 0
mov dword [esp + 0x40], 0xffffffff
mov dword [esp + 0x40], 4
push esi
call fcn.004013f7
xor eax, eax
mov dword [esp + 0x50], 0xfffffff8
mov dword [esp + 0x18], eax
jmp 0x401ef7
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x2b8]
mov dword [ecx + edx*4], 0x2268f62c
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ebx
jl 0x401ee1
mov dword [esp + 0x18], eax
jmp 0x401f16
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x36c], 0x35a7ab5b
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x401f03
mov dword [esp + 0x18], eax
jmp 0x401f39
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x210]
mov dword [ecx + edx*4], 0xd296407
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x401f23
mov ecx, dword [esp + 0x44]
mov ecx, dword [esp + 0x44]
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0x44]
mov ecx, dword [esp + 0x44]
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x370]
mov ecx, dword [esp + 0x370]
mov ecx, dword [esp + 0x370]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x40], ecx
cmp dword [esp + 0x40], eax
je 0x401f8b
mov ecx, dword [esp + 0x2b8]
mov edx, esi
cmp dword [ecx], eax
jne 0x401f8d
mov edx, eax
mov eax, dword [esp + 0x24]
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x370]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x40]
add ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x210]
neg ecx
mov dword [eax], ecx
mov dword [esp + 0x50], ecx
lea ecx, [esp + 0x210]
call fcn.004014c9
lea ecx, [esp + 0x2b8]
call fcn.004014c9
mov dword [esp + 0x54], 0xfffb
lea ecx, [esp + 0x228]
push esi
call fcn.004013f7
xor eax, eax
mov dword [esp + 0x14], 0xfffffff7
mov dword [esp + 0x14], eax
jmp 0x40202b
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x228]
mov dword [ecx + edx*4], 0x6834504c
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x402015
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], eax
jl 0x402051
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x228]
cmp dword [ecx + edx*4], eax
jne 0x402051
dec dword [esp + 0x14]
jns 0x40203b
lea ecx, [esp + 0x228]
call fcn.004014c9
push dword [esp + 0x158]
movdqa xmm0, xmmword [0xa618b0]
lea ecx, [esp + 0x47c]
push ecx
xor eax, eax
mov dword [esp + 0x20], 0x7ca0029b
lea ecx, [esp + 0x470]
mov dword [esp + 0x17c], eax
push ecx
push eax
lea ecx, [esp + 0x184]
mov dword [esp + 0x188], eax
movdqu xmmword [esp + 0x478], xmm0
mov dword [esp + 0x18c], eax
call fcn.00401916
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x4c], esi
mov dword [esp + 0x14], edi
cmp dword [esp + 0x14], 0
jl 0x4020e2
mov byte [esp + 0x2b], 0
cmp byte [esp + 0x2b], 0
je 0x4020dc
push 0
call dword [0xa65020]
dec dword [esp + 0x14]
jns 0x4020c8
lea ecx, [esp + 0x174]
call fcn.004014c9
mov dword [esp + 0x40], 0xfffffff9
xor eax, eax
mov dword [esp + 0x38], 0xe387fb0b
mov dword [esp + 0x14], ebx
mov dword [esp + 0x3c], 9
mov dword [esp + 0x50], 0x87642760
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], eax
jmp 0x402135
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x128], 0xf1a969ac
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x402122
mov dword [esp + 0x10], eax
jmp 0x402154
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x4cc], 0xfffffff7
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x402141
mov edi, dword [0xa650f0]
cmp dword [esp + 0x38], eax
je 0x402225
push 3
lea ecx, [esp + 0x3f8]
call fcn.004013f7
push ebx
lea ecx, [esp + 0x340]
call fcn.004013f7
mov dword [esp + 0x30], 0x2796a450
mov dword [esp + 0x10], 0
jmp 0x4021ae
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x3f4]
mov dword [eax + ecx*4], 0xdee2
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x402198
mov dword [esp + 0x10], 0
jmp 0x4021d5
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x33c]
mov dword [eax + ecx*4], 4
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jl 0x4021bf
inc dword [esp + 0x2c]
mov eax, dword [esp + 0x128]
mov eax, dword [esp + 0x50]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x33c]
mov dword [eax + 4], ecx
lea ecx, [esp + 0x33c]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x4d4]
mov dword [esp + 0x30], esi
call fcn.004014c9
lea ecx, [esp + 0x3f4]
call fcn.004014c9
jmp 0x402237
mov byte [esp + 0x2b], al
cmp byte [esp + 0x2b], al
je 0x402239
push eax
push 0x263d
call edi
xor eax, eax
mov dword [esp + 0x38], 0xab46
mov dword [esp + 0x30], eax
mov dword [esp + 0x20], 0x1928c176
mov dword [esp + 0x20], 0xffffffe2
jmp 0x40233a
mov dword [esp + 0x24], 0x22b16580
mov dword [esp + 0x14], eax
jmp 0x40227b
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x450], 0xc30
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ebx
jl 0x402268
mov dword [esp + 0x24], eax
jmp 0x40232c
mov dword [esp + 0x44], 0x62a2b3b7
mov ecx, dword [esp + 0x24]
cmp dword [esp + ecx*4 + 0x450], eax
jne 0x402336
mov dword [esp + 0x44], esi
cmp dword [esp + 0x44], eax
jl 0x402328
mov dword [esp + 0x10], 5
mov dword [esp + 0x2c], 0xfffffffc
mov dword [esp + 0x14], eax
jmp 0x4022d6
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x148], 0xef6e229e
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x4022c3
mov dword [esp + 0x10], esi
cmp dword [esp + 0x10], eax
jl 0x4022ff
mov dword [esp + 0x2c], 0x6a927213
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x148], ecx
dec dword [esp + 0x10]
jns 0x4022e6
mov dword [esp + 0x10], esi
cmp dword [esp + 0x10], eax
jl 0x402322
mov byte [esp + 0x2b], al
cmp byte [esp + 0x2b], 0
je 0x40231c
call dword [0xa651e4]
xor eax, eax
dec dword [esp + 0x10]
jns 0x402309
dec dword [esp + 0x44]
jns 0x4022ad
inc dword [esp + 0x24]
cmp dword [esp + 0x24], esi
jle 0x40228a
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 0xffffffe5
jge 0x40225a
mov dword [esp + 0x14], 0xd9978317
lea ecx, [esp + 0xcc]
push 3
call fcn.004013f7
mov dword [esp + 0x3c], 0x2edd
lea ecx, [esp + 0x1ec]
push ebx
call fcn.004013f7
mov dword [esp + 0x4c], 6
mov dword [esp + 0x10], 0
jmp 0x402398
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1ec]
mov dword [eax + ecx*4], 0xfffffffb
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jl 0x402382
mov dword [esp + 0x10], 0
jmp 0x4023bb
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x94], 0x3245f1db
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x4023a8
mov eax, dword [esp + 0x1ec]
lea ecx, [esp + 0x1ec]
mov dword [eax + 4], esi
call fcn.004014c9
mov dword [esp + 0x18], 0xffffffff
xor eax, eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x44], 0x47c4
mov dword [esp + 0x4c], 0xbcd76ce4
mov dword [esp + 0x24], 0x401d1b98
mov dword [esp + 0x2c], 0xeea53061
mov dword [esp + 0x20], 0x51ebf0dd
mov dword [esp + 0x2c], esi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x2c], 0xe249
mov dword [esp + 0x10], eax
jmp 0x402432
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0xf0], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jl 0x402423
mov dword [esp + 0x10], eax
jmp 0x40244e
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x64], 0x45acee61
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x40243e
cmp dword [esp + 0x18], eax
jne 0x40245c
mov esi, eax
mov ecx, dword [esp + 0x64]
xor edx, edx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x18]
cmp esi, ecx
sete dl
xor esi, esi
imul edx, dword [esp + 0x20]
inc esi
mov ecx, dword [esp + 0x18]
inc dword [esp + 0x64]
cmp ecx, edx
mov edx, esi
jg 0x402487
mov edx, eax
mov ecx, dword [esp + 0xf4]
xor ebx, ebx
cmp edx, ecx
mov ecx, dword [esp + 0x50]
sete bl
xor edx, edx
cmp ebx, ecx
setle dl
test edx, edx
je 0x4024ab
mov ecx, dword [esp + 0xf4]
mov edx, dword [esp + 0x20]
xor ebx, ebx
mov ecx, dword [esp + 0x24]
cmp edx, ecx
setl bl
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x18], eax
je 0x4024eb
mov ecx, dword [esp + 0x64]
mov ecx, dword [esp + 0x64]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0xf0]
mov ecx, dword [esp + 0x18]
imul edx, ecx
mov ecx, dword [esp + 0x18]
imul ecx, edx
test ecx, ecx
mov ecx, esi
jne 0x4024ed
mov ecx, eax
mov dword [esp + 0x2c], ecx
xor ebx, ebx
mov edx, dword [esp + 0x44]
imul edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
push 8
cmp edx, ecx
pop ecx
setge bl
cmp ecx, ebx
sbb ecx, ecx
inc ecx
sub ecx, dword [esp + 0xf0]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x20], eax
jmp 0x402535
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0xcc]
mov dword [ecx + edx*4], eax
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 3
jl 0x402523
mov ecx, dword [esp + 0x54]
mov ebx, dword [0xa651e8]
neg ecx
sbb ecx, ecx
neg ecx
mov dword [esp + 0x18], ecx
je 0x402d32
push 3
lea ecx, [esp + 0x244]
call fcn.004013f7
push 2
pop edi
push edi
lea ecx, [esp + 0x19c]
call fcn.004013f7
xor eax, eax
mov dword [esp + 0x10], eax
jmp 0x40258e
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x240]
mov dword [ecx + edx*4], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x40257c
mov dword [esp + 0x10], eax
jmp 0x4025b1
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x198]
mov dword [ecx + edx*4], 0xba394643
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x40259b
mov ecx, dword [esp + 0x198]
mov dword [ecx], edi
mov dword [esp + 0x24], eax
mov byte [esp + 0x2b], al
cmp byte [esp + 0x2b], 0
je 0x4025e2
push eax
call dword [0xa651f0]
push eax
call ebx
push eax
call dword [0xa651ec]
xor eax, eax
mov dword [esp + 0x24], eax
jmp 0x4025fe
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x240]
mov dword [ecx + edx*4], 0xfffffffb
inc dword [esp + 0x24]
cmp dword [esp + 0x24], edi
jle 0x4025e8
mov ecx, dword [esp + 0x198]
dec dword [ecx]
jns 0x4025c0
lea ecx, [esp + 0x198]
call fcn.004014c9
lea ecx, [esp + 0x240]
call fcn.004014c9
mov dword [esp + 0x44], esi
xor eax, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x10], 0xfffffffe
push 0xfffffffffffffffa
mov dword [esp + 0x18], 0x7f5a
pop edx
mov dword [esp + 0x50], edx
cmp dword [esp + 0x48], eax
je 0x402681
mov dword [esp + 0x50], 9
mov byte [esp + 0x2b], al
cmp byte [esp + 0x2b], al
je 0x402674
push eax
call dword [0xa651f0]
push eax
call ebx
push eax
call dword [0xa65064]
push 0xfffffffffffffffa
pop edx
mov eax, dword [esp + 0x50]
mov dword [esp + 0x10], eax
jmp 0x40271d
mov dword [esp + 0x24], 0xe3cf
mov dword [esp + 0x2c], 0x2955
mov byte [esp + 0x2b], al
cmp byte [esp + 0x2b], al
je 0x4026a7
push eax
call dword [0xa650fc]
push 0xfffffffffffffffa
xor eax, eax
pop edx
cmp dword [esp + 0x10], eax
jne 0x402711
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0x48]
mov ecx, dword [esp + 0x48]
cmp ecx, dword [esp + 0x48]
jge 0x4026c7
cmp dword [esp + 0x24], eax
je 0x4026c7
mov eax, esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x10], 0x424b969b
jg 0x4026e5
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x48]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
sub eax, 0x31e57ed4
sub eax, dword [esp + 0x2c]
neg eax
sbb eax, eax
inc eax
imul eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x48]
test eax, eax
jne 0x402711
mov eax, dword [esp + 0x48]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x2dc]
mov dword [esp + 0x10], eax
xor ebx, ebx
mov dword [esp + 0xe0], edx
inc ebx
mov dword [esp + 0xe4], edx
mov dword [esp + 0xe8], edx
mov dword [esp + 0xec], edx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x4c], 0xffffffff
push ebx
call fcn.004013f7
xor eax, eax
mov dword [esp + 0x14], eax
jmp 0x40277f
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x2dc]
mov dword [ecx + edx*4], 0x8bd4dfbd
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ebx
jl 0x402769
push 3
mov dword [esp + 0x24], ebx
pop esi
cmp dword [esp + 0x20], 0xfffffff7
je 0x4027cb
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], eax
jmp 0x4027b0
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x538], 0xfffffffc
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x40279d
inc dword [esp + 0x2c]
mov ecx, dword [esp + 0x2dc]
cmp dword [ecx], eax
jne 0x4027cb
dec dword [esp + 0x20]
jmp 0x40278c
lea ecx, [esp + 0x2dc]
call fcn.004014c9
mov dword [esp + 0x10], 0xfffffff6
xor eax, eax
mov dword [esp + 0x2c], 0x7d0b0a35
mov dword [esp + 0x14], eax
jmp 0x402802
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x4a8], 0xfffe
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x4027ef
mov dword [esp + 0x10], 0xfffffffe
jmp 0x4028c3
mov dword [esp + 0x24], 0x39924432
mov dword [esp + 0x24], edi
cmp dword [esp + 0x24], eax
jl 0x4028bf
mov dword [esp + 0x20], 0xfffffffa
mov dword [esp + 0x50], 0xfffffffc
mov dword [esp + 0x20], edi
cmp dword [esp + 0x20], eax
jl 0x4028b5
push edi
lea ecx, [esp + 0x25c]
call fcn.004013f7
mov dword [esp + 0x14], 0
jmp 0x402872
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x258]
mov dword [eax + ecx*4], 0xf27d2703
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x40285c
mov ecx, dword [esp + 0x258]
and dword [ecx + 4], 0
mov eax, dword [ecx + 4]
inc dword [ecx + 4]
mov dword [esp + eax*4 + 0x4a8], 0x1536
cmp dword [ecx + 4], esi
jl 0x402883
mov dword [esp + 0x50], 0x2b21a35c
lea ecx, [esp + 0x258]
call fcn.004014c9
dec dword [esp + 0x20]
jns 0x402845
xor eax, eax
dec dword [esp + 0x24]
jns 0x40282b
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x18
je 0x402815
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], 0xfffffffd
jl 0x40293a
push esi
lea ecx, [esp + 0x328]
call fcn.004013f7
mov dword [esp + 0x14], 0
jmp 0x402906
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x324]
mov dword [eax + ecx*4], 0xa13b2885
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x4028f0
mov dword [esp + 0x2c], 0xc1d6b3bf
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x324]
mov dword [eax], ecx
lea ecx, [esp + 0x324]
call fcn.004014c9
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffffd
jge 0x4028d9
xor eax, eax
cmp dword [esp + 0x18], eax
je 0x402997
mov ecx, dword [esp + 0x38]
xor ebx, ebx
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x18]
cmp edx, ecx
setg bl
mov dword [esp + 0x18], ebx
mov ecx, dword [esp + 0x18]
sub ecx, 0x68dd2ac3
cmp ecx, dword [esp + 0x54]
je 0x402978
cmp dword [esp + 0x30], eax
jne 0x402978
xor ebx, ebx
mov edx, eax
inc ebx
jmp 0x40297d
xor ebx, ebx
inc ebx
mov edx, ebx
mov ecx, dword [esp + 0x44]
imul ecx, edx
add ecx, dword [esp + 0x30]
jne 0x402993
cmp dword [esp + 0xec], eax
je 0x402997
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
cmp eax, dword [esp + 0x18]
jge 0x4029a8
mov eax, dword [esp + 0xe0]
mov eax, dword [esp + 0x54]
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0xec]
imul eax, dword [esp + 0x54]
push esi
cmp eax, ebx
mov eax, dword [esp + 0x34]
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
setg dl
sub edx, dword [esp + 0xec]
mov eax, dword [esp + 0x34]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setne cl
xor edx, edx
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x48]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x58]
cmp ecx, eax
mov eax, dword [esp + 0x48]
setg dl
add eax, 0xdaaf
add edx, eax
mov eax, dword [esp + 0x34]
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
mov eax, dword [esp + 0xd0]
setle cl
imul ecx, ecx, 0xfffffffd
mov dword [eax], ecx
lea ecx, [esp + 0x1cc]
call fcn.004013f7
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x20], eax
jmp 0x402a55
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c8]
mov dword [ecx + edx*4], eax
inc dword [esp + 0x20]
cmp dword [esp + 0x20], esi
jl 0x402a43
mov dword [esp + 0x20], edi
cmp dword [esp + 0x20], eax
jl 0x402cbf
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x24], eax
jmp 0x402a92
mov ecx, dword [esp + 0x24]
mov dword [esp + ecx*4 + 0xd8], 0xffffffff
inc dword [esp + 0x24]
cmp dword [esp + 0x24], edi
jl 0x402a7f
mov dword [esp + 0x24], edi
cmp dword [esp + 0x24], eax
jl 0x402cb5
mov dword [esp + 0x44], 0xae77ab39
lea ecx, [esp + 0x1b0]
push 4
call fcn.004013f7
xor eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x44], eax
jmp 0x402ae2
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x1b0]
mov dword [ecx + edx*4], 0x3c67ee39
inc dword [esp + 0x44]
cmp dword [esp + 0x44], 4
jl 0x402acc
mov dword [esp + 0x44], eax
jmp 0x402ba6
mov dword [esp + 0x10], ebx
mov dword [esp + 0x10], eax
jmp 0x402b0f
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x52c], 0xfffffff8
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x402afc
mov dword [esp + 0x10], edi
cmp dword [esp + 0x10], eax
jl 0x402b4f
mov edx, dword [esp + 0x1b0]
mov dword [esp + 0x50], 0xcc7c44d9
mov ecx, dword [esp + 0x2c]
inc dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x48]
mov ecx, dword [esp + 0x24]
mov ecx, dword [edx + 8]
mov dword [esp + 0x50], ecx
dec dword [esp + 0x10]
jns 0x402b26
mov dword [esp + 0x10], eax
jmp 0x402b9c
mov byte [esp + 0x2b], al
cmp byte [esp + 0x2b], 0
je 0x402b70
push eax
call dword [0xa651f0]
push eax
call dword [0xa65194]
xor eax, eax
mov byte [esp + 0x2b], al
cmp byte [esp + 0x2b], 0
je 0x402b98
push 0x1f51
push 0x12c8
push 0x2423
push 0x264c
push eax
call dword [0xa651ac]
xor eax, eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jle 0x402b55
inc dword [esp + 0x44]
cmp dword [esp + 0x44], edi
jle 0x402af2
mov dword [esp + 0x48], edi
cmp dword [esp + 0x48], eax
jl 0x402c9d
push ebx
lea ecx, [esp + 0x274]
call fcn.004013f7
xor eax, eax
mov dword [esp + 0x10], eax
jmp 0x402be9
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x270]
mov dword [ecx + edx*4], 0xff93f8de
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jl 0x402bd3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x270]
mov ecx, dword [ecx]
sub ecx, edx
jne 0x402c12
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x1b0]
mov dword [ecx + 8], edx
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c8]
cmp dword [ecx + edx*4], eax
jne 0x402c31
mov ecx, eax
cmp dword [esp + 0xdc], eax
je 0x402c33
mov ecx, ebx
mov dword [esp + 0x44], ecx
xor edx, edx
mov ecx, dword [esp + 0xdc]
mov ecx, dword [esp + 0xdc]
test ecx, ecx
setns dl
imul ecx, edx, 0x9491
sub ecx, 0xfffffffa
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0xd8], ecx
mov dword [esp + 0x2c], ecx
cmp dword [esp + 0x2c], eax
je 0x402c83
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x1c8]
cmp dword [ecx + edx*4], eax
je 0x402c83
cmp dword [esp + 0x20], eax
je 0x402c83
mov eax, ebx
mov dword [esp + 0x50], eax
lea ecx, [esp + 0x270]
call fcn.004014c9
dec dword [esp + 0x48]
jns 0x402bbe
lea ecx, [esp + 0x1b0]
call fcn.004014c9
dec dword [esp + 0x24]
jns 0x402aa6
xor eax, eax
dec dword [esp + 0x20]
jns 0x402a69
lea ecx, [esp + 0x1c8]
call fcn.004014c9
mov eax, dword [esp + 0x54]
xor ecx, ecx
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0xcc]
push 0
mov dword [eax + 4], edx
mov eax, dword [esp + 0xec]
cmp eax, 0x57c1b23f
mov eax, dword [esp + 0x1c]
setl cl
sub ecx, 0x9505
neg ecx
sbb ecx, ecx
inc ecx
sub eax, ecx
neg eax
sbb eax, eax
inc eax
imul eax, dword [esp + 0x58]
inc eax
pop eax
setns al
cmp edx, eax
je 0x402d24
mov eax, dword [esp + 0xcc]
cmp dword [eax], 0
jne 0x402d24
xor eax, eax
jmp 0x402d26
mov eax, ebx
mov dword [esp + 0xe8], eax
jmp 0x4033a4
mov dword [esp + 0x4c], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x20], eax
jmp 0x402d57
mov ecx, dword [esp + 0x20]
mov dword [esp + ecx*4 + 0x37c], 0xfffffff9
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 3
jl 0x402d44
mov dword [esp + 0x20], 2
cmp dword [esp + 0x20], eax
jl 0x402d98
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + ecx*4 + 0x37c]
mov ecx, dword [esp + 0x20]
mov dword [esp + ecx*4 + 0x37c], edx
mov dword [esp + 0x2c], edx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x50], ecx
dec dword [esp + 0x20]
jns 0x402d6c
mov dword [esp + 0x20], 0xffff
mov dword [esp + 0x48], 0xb51dba33
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x2c], 0x86095610
mov dword [esp + 0x2c], 0xf738f585
mov esi, dword [esp + 0x48]
neg esi
sbb esi, esi
neg esi
cmp dword [esp + 0x48], eax
je 0x402e4c
mov ecx, dword [esp + 0x48]
xor edx, edx
mov ecx, dword [esp + 0x24]
cmp ecx, 1
setl dl
imul edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x48]
jl 0x402df6
cmp dword [esp + 0x48], eax
je 0x402df6
xor edx, edx
inc edx
jmp 0x402df8
mov edx, eax
mov ecx, dword [esp + 0x24]
xor ebx, ebx
cmp edx, ecx
sete bl
sub ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x48]
neg ebx
sbb ebx, ebx
xor edx, edx
inc ebx
cmp ebx, ecx
mov ecx, dword [esp + 0x48]
setle dl
neg edx
sub ecx, edx
neg ecx
sbb ecx, ecx
xor ebx, ebx
inc ecx
mov dword [esp + 0x2c], ecx
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
cmp edx, ecx
setne bl
mov dword [esp + 0x2c], ebx
imul ecx, dword [esp + 0x2c], 0xfa02
test ecx, ecx
je 0x402e4c
xor edx, edx
inc edx
jmp 0x402e4e
mov edx, eax
mov ecx, dword [esp + 0x24]
xor ebx, ebx
cmp edx, ecx
mov ecx, dword [esp + 0x24]
setne bl
xor edx, edx
neg ebx
cmp ebx, ecx
setl dl
imul edx, esi
mov dword [esp + 0x48], edx
mov byte [esp + 0x2b], al
cmp byte [esp + 0x2b], al
je 0x402e81
push eax
push 0x263d
call edi
xor eax, eax
dec dword [esp + 0x20]
lea ecx, [esp + 0x488]
push dword [esp + 0x94]
movdqa xmm0, xmmword [0xa61880]
push ecx
lea ecx, [esp + 0x480]
mov dword [esp + 0x50], 0x25b9b55b
push ecx
push eax
lea ecx, [esp + 0x14c]
mov dword [esp + 0x14c], eax
movdqu xmmword [esp + 0x488], xmm0
mov dword [esp + 0x150], eax
mov dword [esp + 0x154], eax
call fcn.00401916
push 3
pop esi
mov dword [esp + 0x50], 0xfffd
lea ecx, [esp + 0x288]
mov dword [esp + 0x2c], 4
push esi
call fcn.004013f7
mov dword [esp + 0x20], 0
jmp 0x402f17
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x288]
mov dword [eax + ecx*4], 0x4524be1
inc dword [esp + 0x20]
cmp dword [esp + 0x20], esi
jl 0x402f01
xor ebx, ebx
mov dword [esp + 0x48], 0xffffffe4
push 2
inc ebx
cmp dword [esp + 0x4c], 0xffffffee
pop edi
jge 0x40307b
mov esi, dword [esp + 0x288]
mov dword [esp + 0x2c], 0xbe187950
lea ecx, [esp + 0x1e0]
mov dword [esp + 0x20], 0xf88d
push edi
call fcn.004013f7
mov dword [esp + 0x24], 0xed16
lea ecx, [esp + 0x2f4]
push 3
call fcn.004013f7
xor eax, eax
mov dword [esp + 0x20], 0xdc870af0
mov dword [esp + 0x10], eax
jmp 0x402f96
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1e0]
mov dword [ecx + edx*4], 0xfffffff9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x402f80
mov dword [esp + 0x10], eax
jmp 0x402fb4
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2f4]
mov dword [ecx + edx*4], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x402fa2
mov ecx, dword [esp + 0x48]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
neg ecx
sbb ecx, ecx
neg ecx
mov dword [esp + 0x20], ecx
cmp dword [esp + 0x20], eax
jne 0x402fe4
mov ecx, dword [esp + 0x1e0]
cmp dword [ecx], eax
mov ecx, eax
je 0x402fe6
mov ecx, ebx
cmp dword [esp + 0x2c], ecx
jl 0x402ff9
mov ecx, dword [esp + 0x1e0]
cmp dword [ecx], eax
mov ecx, eax
je 0x402ffb
mov ecx, ebx
mov eax, dword [esp + 0x48]
xor edx, edx
cmp eax, ecx
mov eax, dword [esp + 0x24]
setg dl
xor ecx, ecx
cmp edx, eax
setle cl
sub ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x13c]
add ecx, 0xffffe884
mov dword [eax], ecx
mov eax, dword [esp + 0x50]
sub ecx, eax
mov dword [esp + 0x2c], ecx
xor ecx, ecx
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
cmp eax, ebx
mov eax, dword [esp + 0x2f4]
setle cl
mov dword [eax], ecx
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x2f4]
mov eax, dword [esp + 0x20]
mov dword [esi + 8], eax
call fcn.004014c9
lea ecx, [esp + 0x1e0]
call fcn.004014c9
inc dword [esp + 0x48]
cmp dword [esp + 0x48], 0xffffffee
jl 0x402f3d
push 3
pop esi
lea ecx, [esp + 0x288]
call fcn.004014c9
lea ecx, [esp + 0x13c]
call fcn.004014c9
mov dword [esp + 0x10], 0xe83c773
xor eax, eax
mov dword [esp + 0x24], 0x79cd329b
mov dword [esp + 0x2c], 0xd40a7fc
mov dword [esp + 0x2c], 6
mov dword [esp + 0x2c], eax
mov dword [esp + 0x48], 0xfffffff6
mov dword [esp + 0x44], 5
mov dword [esp + 0x50], 0x674f9af3
mov dword [esp + 0x20], eax
jmp 0x4030e6
mov ecx, dword [esp + 0x20]
mov dword [esp + ecx*4 + 0xc0], ebx
inc dword [esp + 0x20]
cmp dword [esp + 0x20], esi
jl 0x4030d7
mov dword [esp + 0x10], edi
cmp dword [esp + 0x10], eax
jl 0x4031be
mov dword [esp + 0x2c], 0xb372ba29
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x50], eax
mov dword [esp + 0x20], eax
jmp 0x403127
mov ecx, dword [esp + 0x20]
mov dword [esp + ecx*4 + 0x4b4], 0xc4475ee4
inc dword [esp + 0x20]
cmp dword [esp + 0x20], esi
jl 0x403114
mov ecx, dword [esp + 0x10]
xor edx, edx
push 3
mov ecx, dword [esp + ecx*4 + 0xc4]
mov dword [esp + 0x30], ecx
mov esi, dword [esp + 0x30]
add esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
cmp ecx, 0x9f6a
mov ecx, dword [esp + 0x14]
setne dl
imul esi, edx
sub esi, dword [esp + ecx*4 + 0xc4]
mov ecx, dword [esp + 0x14]
add esi, dword [esp + ecx*4 + 0xc4]
imul ecx, esi, 0xd0
pop esi
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x4bc], ecx
mov edx, dword [esp + 0xc0]
add edx, ecx
neg edx
sbb edx, edx
neg edx
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + ecx*4 + 0xc0]
mov ecx, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
neg ecx
mov dword [esp + 0x50], ecx
dec dword [esp + 0x10]
jns 0x4030fa
mov dword [esp + 0x24], ebx
xor edx, edx
mov ecx, dword [esp + 0x24]
cmp ecx, esi
setge dl
xor ecx, ecx
cmp edx, 9
setle cl
xor ebx, ebx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0xc4]
test ecx, ecx
mov edx, dword [esp + 0x10]
setns bl
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, ebx
setg cl
xor ebx, ebx
mov dword [esp + 0x2c], ecx
inc ebx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0xc8]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x44]
imul ecx, dword [esp + 0x44]
push ebx
imul ecx, dword [esp + 0x4c]
sub ecx, dword [esp + 0x4c]
mov dword [esp + 0x54], ecx
lea ecx, [esp + 0x160]
mov byte [esp + 0x2f], al
call fcn.004013f7
xor eax, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x20], eax
jmp 0x403262
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x15c]
mov dword [ecx + edx*4], 0x1713b910
inc dword [esp + 0x20]
cmp dword [esp + 0x20], ebx
jl 0x40324c
mov dword [esp + 0x48], eax
jmp 0x4032d1
mov dword [esp + 0x20], 0x51c76d7b
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x15c]
mov ecx, dword [edx + ecx*4]
mov dword [edx + esi*4], ecx
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x15c]
cmp dword [ecx + edx*4], eax
jne 0x4032d7
mov dword [esp + 0x20], eax
jmp 0x4032c7
push 0xfffffffffffffff8
pop ecx
mov dword [esp + 0x4c], ecx
xor edx, edx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x2c], edi
mov ecx, dword [esp + 0x50]
cmp ecx, ebx
setle dl
mov dword [esp + 0x2c], edx
inc dword [esp + 0x20]
cmp dword [esp + 0x20], eax
jle 0x4032a5
inc dword [esp + 0x48]
cmp dword [esp + 0x48], eax
jle 0x40326e
lea ecx, [esp + 0x15c]
call fcn.004014c9
cmp byte [esp + 0x2b], 0
je 0x4033a4
mov dword [esp + 0x44], 0xd6c05baf
mov dword [esp + 0x50], ebx
mov dword [esp + 0x44], 0xfffffffd
jmp 0x403376
mov dword [esp + 0x24], 0xeede0b40
mov dword [esp + 0x24], 0xffffffea
jmp 0x40336b
push edi
lea ecx, [esp + 0x358]
call fcn.004013f7
mov dword [esp + 0x20], 0
jmp 0x403343
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x354]
mov dword [eax + ecx*4], 0x6f7fbf21
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edi
jl 0x40332d
mov eax, dword [esp + 0x354]
mov ecx, 0x91c5534b
mov dword [eax], ecx
mov dword [esp + 0x50], ecx
lea ecx, [esp + 0x354]
call fcn.004014c9
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 0xfffffffb
jge 0x403316
inc dword [esp + 0x44]
cmp dword [esp + 0x44], 0xd
jge 0x403304
push 0x18e4
push 0
push 0x1326
push 0x2c0
push 0
call dword [0xa651f0]
push eax
call dword [0xa651e8]
push eax
call dword [0xa65060]
xor eax, eax
mov dword [esp + 0x20], 0xfffffff9
mov dword [esp + 0x20], eax
cmp dword [esp + 0x20], 0xffffffe4
jle 0x4034c4
push dword [esp + 0x94]
movdqa xmm0, xmmword [0xa61860]
lea ecx, [esp + 0x4ac]
push ecx
lea ecx, [esp + 0x4a0]
mov dword [esp + 0x134], eax
push ecx
push eax
lea ecx, [esp + 0x13c]
mov dword [esp + 0x140], eax
movdqu xmmword [esp + 0x4a8], xmm0
mov dword [esp + 0x144], eax
call fcn.00401916
mov esi, dword [esp + 0x12c]
mov dword [esp + 0x2c], ebx
and dword [esi + 0xc], 0
push 4
lea ecx, [esp + 0x2a4]
call fcn.004013f7
mov dword [esp + 0x50], 0xf126c7f0
mov dword [esp + 0x24], 0
jmp 0x40344c
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x2a0]
mov dword [eax + ecx*4], 0xfff9
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 4
jl 0x403436
mov eax, dword [esp + 0x2c]
xor ecx, ecx
inc dword [esp + 0x2c]
mov edx, dword [esp + 0x2a0]
mov eax, dword [esp + 0x20]
cmp dword [edx + 4], 0xfffffff7
sete cl
sub ecx, eax
cmp ecx, 0xa7609fa8
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, dword [edx + 4]
setl cl
xor eax, eax
cmp ecx, edi
lea ecx, [esp + 0x2a0]
setg al
mov dword [esp + 0x50], eax
call fcn.004014c9
dec dword [esi + 0xc]
cmp dword [esi + 0xc], 0xfffffff5
jne 0x403416
lea ecx, [esp + 0x12c]
call fcn.004014c9
dec dword [esp + 0x20]
cmp dword [esp + 0x20], 0xffffffe4
push 0
pop eax
jg 0x4033bd
mov ecx, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], ecx
push 0xfffffffffffffffd
pop esi
cmp dword [esp + 0x18], eax
je 0x403509
mov ecx, dword [esp + 0xcc]
xor edx, edx
cmp dword [ecx + 4], esi
setg dl
cmp edx, dword [ecx]
jge 0x4034f4
mov edx, eax
cmp dword [esp + 0x3c], eax
je 0x4034f6
mov edx, ebx
xor ecx, ecx
cmp edx, 0x19dda5c1
setg cl
cmp ecx, dword [esp + 0x3c]
je 0x403509
mov eax, ebx
lea ecx, [eax + 0x595c9828]
mov eax, dword [esp + 0xcc]
mov dword [eax + 8], ecx
cmp ecx, dword [esp + 0x38]
jne 0x403523
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x54]
xor edx, edx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
cmp ecx, eax
mov eax, dword [esp + 0x14]
setge dl
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0xcc]
call fcn.004014c9
mov dword [esp + 0x30], 9
mov dword [esp + 0x30], 0
jmp 0x4035f8
push 3
lea ecx, [esp + 0x310]
call fcn.004013f7
xor eax, eax
mov dword [esp + 0x10], 0xbeccce1e
mov dword [esp + 0x14], eax
jmp 0x403597
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x30c]
or dword [ecx + edx*4], 0xffffffff
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x403584
mov dword [esp + 0x10], edi
cmp dword [esp + 0x10], eax
jl 0x4035c8
mov byte [esp + 0x2b], al
cmp byte [esp + 0x2b], 0
je 0x4035c2
push 0x1795
push eax
push eax
call dword [0xa650b0]
xor eax, eax
dec dword [esp + 0x10]
jns 0x4035a8
mov dword [esp + 0x10], eax
jmp 0x4035e2
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x30c]
cmp dword [ecx + edx*4], eax
jne 0x4035e8
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jle 0x4035ce
lea ecx, [esp + 0x30c]
call fcn.004014c9
dec dword [esp + 0x30]
cmp dword [esp + 0x30], 0xfffffff7
jge 0x403566
push 8
mov dword [esp + 0x44], edi
lea ecx, [esp + 0x430]
pop eax
mov dword [esp + 0x10], 0x730f94f3
mov dword [esp + 0x38], eax
mov dword [esp + 0x20], 0x3a92bd42
push edi
call fcn.004013f7
mov dword [esp + 0x54], 0xdc4b6369
xor eax, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x24], 0xfffffff7
mov dword [esp + 0x4c], 9
mov dword [esp + 0x18], eax
jmp 0x403662
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x80], 0x3d9532bb
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x40364f
mov dword [esp + 0x18], eax
jmp 0x403684
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x42c]
mov dword [ecx + edx*4], 0xd38951fe
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x40366e
mov dword [esp + 0x18], eax
jmp 0x4036a3
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x544], 0xfffffffc
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jl 0x403690
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], ebx
jg 0x4038a2
jmp 0x4036c4
xor eax, eax
mov dword [esp + 0x30], 9
lea ecx, [esp + 0x3b8]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x50], 0xb07d0d1d
push ebx
call fcn.004013f7
xor eax, eax
mov dword [esp + 0x48], 0xffff
mov dword [esp + 0x14], eax
jmp 0x40370f
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x3b8]
mov dword [ecx + edx*4], 0x236728ad
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ebx
jl 0x4036f9
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
sub edx, ecx
neg edx
sbb edx, edx
xor ebx, ebx
inc edx
sub edx, dword [esp + 0x2c]
sub edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x40]
cmp edx, ecx
mov ecx, dword [esp + 0x10]
setge bl
mov edx, dword [esp + ecx*4 + 0x80]
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x80], edx
mov dword [esp + 0x38], edx
cmp dword [esp + 0x38], ebx
jle 0x4037b6
mov dword [esp + 0x3c], eax
xor ebx, ebx
mov dword [esp + 0x3c], 0x7223b16a
inc ebx
mov dword [esp + 0x3c], 0x6c715341
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], ebx
jge 0x4037b0
push 8
pop ecx
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x98], ecx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ebx
jl 0x40379b
dec dword [esp + 0x44]
jmp 0x4037cc
mov eax, dword [esp + 0x54]
xor ebx, ebx
mov ecx, dword [esp + 0x20]
inc ebx
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x80], ecx
cmp dword [esp + 0x10], ebx
push 8
sbb ecx, ecx
xor edx, edx
neg ecx
sub ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x30]
cmp eax, ecx
mov eax, dword [esp + 0x4c]
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x14]
setg cl
sub ecx, dword [esp + eax*4 + 0x84]
pop eax
sub ecx, eax
mov eax, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, 0xebb9
setge dl
xor ecx, ecx
add edx, dword [esp + eax*4 + 0x80]
mov eax, dword [esp + 0x24]
cmp eax, edx
mov eax, dword [esp + 0x20]
setg cl
xor edx, edx
cmp ecx, eax
setl dl
xor eax, eax
cmp edx, 0xd954
mov dword [esp + 0x84], edx
setge al
xor ecx, ecx
cmp eax, 0x1fbf
mov eax, dword [esp + 0x24]
setge cl
sub eax, ecx
lea ecx, [esp + 0x3b8]
sub eax, dword [esp + 0x4c]
add eax, dword [esp + 0x54]
neg eax
sbb eax, eax
neg eax
imul eax, eax, 0x9d33
sub eax, dword [esp + 0x24]
neg eax
sbb eax, eax
inc eax
sub eax, dword [esp + 0x30]
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x20], eax
call fcn.004014c9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jle 0x4036c2
lea ecx, [esp + 0x42c]
call fcn.004014c9
push ebx
lea ecx, [esp + 0x1d8]
call fcn.004013f7
mov dword [esp + 0x14], edi
mov dword [esp + 0x14], 0
jmp 0x4038df
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1d4]
mov dword [eax + ecx*4], 0x7cb3
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ebx
jl 0x4038c9
mov eax, dword [esp + 0x1d4]
mov eax, dword [eax]
mov dword [esp + 0x14], eax
mov dword [esp + 0x14], 0x1d
jmp 0x40392e
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x4c], edi
mov dword [esp + 0x30], 0
jmp 0x403923
mov eax, dword [esp + 0x1d4]
mov eax, dword [eax]
mov dword [esp + 0x4c], eax
dec dword [esp + 0x30]
cmp dword [esp + 0x30], 0xffffffee
jle 0x403912
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xfffffff0
jl 0x4038fc
lea ecx, [esp + 0x1d4]
call fcn.004014c9
push 4
pop esi
push esi
lea ecx, [esp + 0x208]
call fcn.004013f7
push esi
lea ecx, [esp + 0x1fc]
call fcn.004013f7
mov dword [esp + 0x38], 0xe6e2bfbd
xor eax, eax
mov dword [esp + 0x40], ebx
mov dword [esp + 0x4c], 0x4628aea3
mov dword [esp + 0x30], 0xd983a5c2
mov dword [esp + 0x4c], 0xfffffff8
mov dword [esp + 0x18], eax
jmp 0x403999
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x124], eax
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ebx
jl 0x40398a
mov dword [esp + 0x18], eax
jmp 0x4039bb
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x204]
mov dword [ecx + edx*4], 0x42c70bb7
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x4039a5
mov dword [esp + 0x18], eax
jmp 0x4039d9
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1f8]
mov dword [ecx + edx*4], eax
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x4039c7
mov esi, dword [esp + 0x204]
mov edi, dword [esp + 0x1f8]
mov dword [esi + 0xc], eax
push ebx
lea ecx, [esp + 0x190]
call fcn.004013f7
xor eax, eax
mov dword [esp + 0x2c], 0x60d2f38
mov dword [esp + 0x4c], eax
mov dword [esp + 0x10], eax
jmp 0x403a27
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x18c]
mov dword [ecx + edx*4], 3
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jl 0x403a11
mov dword [esp + 0x10], eax
jmp 0x403a46
cmp dword [esp + 0x10], 2
jl 0x403a33