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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x298
push esi
mov dword [esp + 0x50], ecx
push edi
mov dword [esp + 0xc], 0xffffffff
mov edi, edx
mov dword [esp + 0x24], 0xdd9cd443
mov dword [esp + 0x38], edi
mov dword [esp + 0x18], 0
jmp 0x477f31
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x1f0], 0x5047c4d1
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x477f1e
mov esi, dword [esp + 0xc]
mov ecx, 0xd72276b8
mov dword [esp + 0x1f0], esi
mov eax, dword [esp + 0xc]
cmp ecx, eax
mov eax, dword [esp + 0xc]
sbb ecx, ecx
xor edx, edx
neg ecx
cmp eax, ecx
mov eax, dword [esp + 0xc]
setg dl
xor ecx, ecx
cmp esi, eax
setle cl
xor eax, eax
cmp edx, ecx
setg al
sub eax, dword [esp + 0xc]
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 0xfffffffb
mov eax, dword [esp + 0xc]
setne cl
imul eax, ecx
mov dword [esp + 0x24], eax
mov byte [esp + 0xb], 0
cmp byte [esp + 0xb], 0
je 0x477fa7
push 0xac8
push 0x1f8
call dword [0xac3464]
xor esi, esi
lea ecx, [esp + 0x190]
inc esi
mov dword [esp + 0x1c], esi
push 2
call fcn.0043b6b2
mov dword [esp + 0xc], 0xfffffffa
mov dword [esp + 0x18], 0
jmp 0x477fe0
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x190]
mov dword [eax + ecx*4], esi
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x477fce
mov eax, dword [esp + 0x1c]
xor edx, edx
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x190]
mov eax, dword [esp + 0x1c]
cmp eax, dword [ecx + 4]
mov eax, dword [esp + 0x1c]
setl dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [esp + 0x1c], ecx
mov dword [esp + 0xc], 0
jmp 0x47802b
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x24], esi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 0x11
je 0x47801b
lea ecx, [esp + 0x190]
call fcn.0043b784
mov eax, dword [0xac1b70]
test al, 1
jne 0x4780c5
or eax, esi
mov dword [0xac1b70], eax
xor eax, eax
push eax
push eax
mov dword [0xac1b80], eax
mov dword [0xac1b84], eax
call fcn.00403b48
mov ecx, eax
mov dword [0xac1b9c], 0x3f800000
mov dword [0xac1b80], ecx
xor eax, eax
mov dword [esp + 0xdc], ecx
lea ecx, [esp + 0xdc]
push ecx
push 0x10
push eax
mov dword [0xac1b88], eax
mov ecx, 0xac1b88
mov dword [0xac1b90], eax
mov dword [0xac1b8c], eax
lea eax, [esp + 0x1e8]
push eax
call fcn.0040387e
push 7
pop eax
push 0x4c6761
mov dword [0xac1b94], eax
mov dword [0xac1b98], 8
call fcn.004a2a5f
pop ecx
push 0xfffffffffffffff8
pop eax
mov dword [esp + 0x18], 2
lea ecx, [esp + 0xfc]
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x1c4], eax
push esi
call fcn.0043b6b2
mov dword [esp + 0x20], esi
xor eax, eax
mov dword [esp + 0xc], 0xf874acc0
mov dword [esp + 0xc], 0xfffffff9
mov dword [esp + 0x24], 0xfffffffb
mov dword [esp + 0xc], eax
jmp 0x478133
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0xfc]
mov dword [ecx + edx*4], 0x19e95d1c
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x47811d
mov esi, dword [esp + 0xfc]
cmp dword [esi], eax
je 0x47814f
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0xfc]
xor ecx, ecx
cmp dword [esi], 0xcc09
setne cl
xor edx, edx
cmp ecx, dword [esi]
setne dl
sub edx, dword [esi]
mov dword [esi], edx
cmp edx, dword [esp + 0x20]
jne 0x478175
cmp dword [esp + 0x20], eax
jne 0x478175
mov ecx, eax
jmp 0x478178
xor ecx, ecx
inc ecx
mov esi, dword [esp + 0x18]
xor edx, edx
cmp ecx, 0xffffffff
mov dword [esp + 0x1bc], esi
mov ecx, 0x2fafd11d
setl dl
sub ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
dec dword [esp + 0x18]
cmp esi, ecx
jl 0x4781a9
xor esi, esi
inc esi
mov eax, esi
jmp 0x4781ac
xor esi, esi
inc esi
mov dword [esp + 0xc], eax
lea ecx, [esp + 0xfc]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x24], eax
call fcn.0043b784
imul eax, dword [esp + 0x54], 0x2710
lea ecx, [esp + 0x178]
push 8
add eax, edi
mov dword [esp + 0x80], eax
mov dword [esp + 0x14], 0xe5a60d00
pop edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x14], 0
mov dword [esp + 0x20], 0x28fdeb77
mov dword [esp + 0x1c], 0xf90a3cfc
push esi
call fcn.0043b6b2
xor eax, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0xc], eax
jmp 0x47822f
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x178]
mov dword [ecx + edx*4], eax
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x47821d
mov ecx, dword [esp + 0x20]
xor edx, edx
mov ecx, dword [esp + 0x20]
cmp ecx, 0xfffffff8
mov dword [esp + 0x18], 0xfffffff9
setne dl
inc dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x24], edx
xor edx, edx
cmp dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x14]
sete dl
xor esi, esi
cmp edx, ecx
push esi
pop ecx
setl cl
add ecx, dword [esp + 0x1c]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
sub edx, ecx
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
imul esi, edx
cmp esi, edi
setne cl
add ecx, dword [esp + 0x14]
je 0x4782a7
cmp dword [esp + 0x10], eax
je 0x4782a7
xor esi, esi
inc esi
mov ecx, esi
jmp 0x4782ac
xor esi, esi
mov ecx, eax
inc esi
push 3
pop edi
cmp ecx, dword [esp + 0x20]
jl 0x4782d0
mov dword [esp + 0x20], esi
mov dword [esp + 0x18], eax
jmp 0x4782c7
dec dword [esp + 0x20]
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x12
je 0x4782bf
jmp 0x47833b
mov dword [esp + 0x28], 0x15fb26c
mov dword [esp + 0x28], 0xb88cdf8a
mov dword [esp + 0x28], edi
mov dword [esp + 0xc], eax
jmp 0x4782fd
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x278], 0x7e294b58
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x4782ea
mov dword [esp + 0x1c], 0xfffffff7
jmp 0x478334
mov dword [esp + 0xc], eax
jmp 0x478326
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x254], 0x2ef7e291
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x478313
dec dword [esp + 0x30]
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0x18
je 0x47830d
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], eax
jl 0x478364
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x178]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
dec dword [esp + 0x10]
jns 0x478345
lea ecx, [esp + 0x178]
call fcn.0043b784
lea eax, [esp + 0x7c]
push eax
call fcn.00479e99
mov eax, dword [eax]
test eax, eax
je 0x47855e
mov dword [esp + 0x14], 0xfffffffa
mov dword [esp + 0x10], 0x38d927f7
mov dword [esp + 0x18], 0xd0176df7
mov dword [esp + 0x20], 0x9e1a0e1c
mov dword [esp + 0x2c], 0x437f0d30
mov dword [esp + 0x8c], eax
xor eax, eax
mov dword [esp + 0x14], esi
cmp dword [esp + 0x14], 0xc4279c41
je 0x4783ed
cmp dword [esp + 0x14], eax
jne 0x4783cb
mov esi, eax
mov ecx, dword [esp + 0x14]
xor edx, edx
cmp esi, ecx
setle dl
xor esi, esi
mov dword [esp + 0x10], edx
inc esi
mov ecx, dword [esp + 0x10]
mov edx, eax
add ecx, dword [esp + 0x14]
cmp dword [esp + 0x14], ecx
jne 0x4783ef
mov edx, esi
mov ecx, dword [esp + 0x14]
imul ecx, edx
sub ecx, dword [esp + 0x14]
mov dword [esp + 0x18], ecx
imul ecx, dword [esp + 0x18], 0xfffffffd
test ecx, ecx
je 0x478446
mov byte [esp + 0xb], al
cmp byte [esp + 0xb], 0
je 0x47842b
push 0x89
push 0x258f
push eax
push eax
push 0x168a
call dword [0xac33d8]
xor eax, eax
mov byte [esp + 0xb], al
cmp byte [esp + 0xb], 0
je 0x479e01
push eax
call dword [0xac33d4]
jmp 0x479e01
mov dword [esp + 0x1c], 0xffffffff
lea ecx, [esp + 0x19c]
push esi
call fcn.0043b6b2
mov dword [esp + 0xc], 4
xor eax, eax
mov dword [esp + 0x24], 5
mov dword [esp + 0xc], eax
jmp 0x478489
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x19c]
mov dword [ecx + edx*4], 0x660f
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x478473
mov ecx, dword [esp + 0x1c]
xor edx, edx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
cmp ecx, 9
push 0
setne dl
xor ecx, ecx
cmp edx, 0xb9d6
setle cl
xor edx, edx
add ecx, dword [esp + 0x20]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x30]
setne dl
cmp esi, edx
sbb edx, edx
inc edx
cmp edx, ecx
mov ecx, dword [esp + 0x20]
pop edx
setg dl
mov dword [esp + 0x18], ecx
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
je 0x47852a
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x19c]
mov dword [ecx], eax
xor ecx, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0xc]
sub eax, dword [esp + 0x10]
cmp eax, esi
setl cl
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x19c]
jmp 0x479dfc
push esi
lea ecx, [esp + 0x13c]
call fcn.0043b6b2
push 7
mov dword [esp + 0x1c], esi
pop eax
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 0x2c], 0xfffffffa
mov dword [esp + 0x18], eax
jmp 0x47859c
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x138]
mov dword [ecx + edx*4], 0x6f50
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x478586
mov ecx, dword [esp + 0x138]
cmp dword [ecx], eax
je 0x478703
mov dword [esp + 0x1c], 0xee6d058a
mov dword [esp + 0x144], eax
mov dword [esp + 0x148], eax
mov dword [esp + 0x14c], eax
mov dword [esp + 0x150], eax
cmp dword [esp + 0x1c], eax
jne 0x4785dd
mov esi, eax
mov ecx, dword [esp + 0x1c]
xor edx, edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x138]
cmp dword [ecx], esi
mov ecx, dword [esp + 0x1c]
sete dl
mov dword [esp + 0x24], edx
xor edx, edx
cmp dword [esp + 0x24], ecx
setg dl
add edx, dword [esp + 0x1c]
mov dword [esp + 0x150], edx
cmp dword [esp + 0x144], 0x314a
mov byte [esp + 0xb], al
jl 0x4786e7
cmp byte [esp + 0xb], al
je 0x47863f
call dword [0xac3448]
push eax
call dword [0xac3400]
xor esi, esi
inc esi
lea ecx, [esp + 0x138]
call fcn.0043b784
mov eax, dword [0xac1b70]
test al, 2
jne 0x4786d3
or eax, 2
mov dword [0xac1b70], eax
xor eax, eax
push eax
push eax
mov dword [0xac1b50], eax
mov dword [0xac1b54], eax
call fcn.00403b48
mov ecx, eax
mov dword [0xac1b6c], 0x3f800000
mov dword [0xac1b50], ecx
xor eax, eax
mov dword [esp + 0xec], ecx
lea ecx, [esp + 0xec]
push ecx
push 0x10
push eax
mov dword [0xac1b58], eax
mov ecx, 0xac1b58
mov dword [0xac1b60], eax
mov dword [0xac1b5c], eax
lea eax, [esp + 0x68]
push eax
call fcn.0040387e
push 7
pop eax
push 0x4c675c
mov dword [0xac1b64], eax
mov dword [0xac1b68], 8
call fcn.004a2a5f
pop ecx
xorps xmm0, xmm0
xor eax, eax
movdqu xmmword [esp + 0xa8], xmm0
mov dword [esp + 0x10], eax
jmp 0x478748
cmp byte [esp + 0xb], al
je 0x47863f
push eax
push 0x1644
push eax
call dword [0xac3310]
jmp 0x47863f
mov dword [esp + 0x18], eax
jmp 0x478729
mov dword [esp + 0x24], esi
mov dword [esp + 0xc], eax
jmp 0x47871f
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x2c], ecx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], eax
jle 0x478713
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jle 0x478709
jmp 0x478642
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x26c], 9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x478735
mov dword [esp + 0x10], eax
jmp 0x478767
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0xc4], 0xebaeef20
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x478754
mov dword [esp + 0xc8], eax
jmp 0x4787d9
mov dword [esp + 0xc], 0xd37ad435
mov dword [esp + 0xc], eax
jmp 0x4787b0
cmp byte [esp + 0xb], 0
je 0x4787ac
push eax
push 0x22a0
push 0x1f4d
call dword [0xac3448]
push eax
call dword [0xac341c]
push eax
call dword [0xac30c0]
xor eax, eax
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
mov byte [esp + 0xb], al
jle 0x478784
cmp byte [esp + 0xb], 0
je 0x4787d2
push eax
call dword [0xac3448]
push eax
call dword [0xac343c]
xor eax, eax
inc dword [esp + 0xc8]
cmp dword [esp + 0xc8], 2
jle 0x478776
mov byte [esp + 0xb], al
cmp byte [esp + 0xb], 0
je 0x478807
push 0x175
call dword [0xac3448]
push eax
call dword [0xac341c]
push eax
call dword [0xac3124]
lea eax, [esp + 0x54]
push eax
call fcn.00479efb
mov edi, dword [eax]
mov dword [esp + 0x18], 4
mov dword [esp + 0x24], edi
mov dword [esp + 0x18], 0xffffffee
jmp 0x478997
push esi
lea ecx, [esp + 0x124]
call fcn.0043b6b2
mov dword [esp + 0x10], esi
xor eax, eax
mov dword [esp + 0x20], 0x4d8d955a
mov dword [esp + 0xc], eax
jmp 0x478863
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x120]
mov dword [ecx + edx*4], 0x683c8fc5
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x47884d
mov dword [esp + 0x10], eax
jmp 0x47897d
mov dword [esp + 0x28], 0x5fc1c575
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x120]
cmp dword [ecx + edx*4], eax
je 0x478949
mov dword [esp + 0x14], esi
push 2
pop ecx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], eax
jg 0x47892f
mov dword [esp + 0xc], eax
jmp 0x4788d5
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x3c], 0xb8f5f499
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x4788c5
mov dword [esp + 0x3c], eax
jmp 0x478907
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
neg ecx
sbb ecx, ecx
neg ecx
mov dword [esp + 0x20], ecx
inc dword [esp + 0x3c]
cmp dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x10]
jle 0x4788e1
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x120]
push 1
mov ecx, dword [edx + ecx*4]
mov dword [edx + esi*4], ecx
inc dword [esp + 0x18]
pop esi
cmp dword [esp + 0x14], eax
jle 0x4788bf
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], eax
jl 0x478965
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x20], ecx
dec dword [esp + 0x14]
jns 0x478939
jmp 0x478965
mov dword [esp + 0xc], eax
jmp 0x47895b
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x78], esi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x47894f
dec dword [esp + 0x78]
mov byte [esp + 0xb], al
cmp byte [esp + 0xb], 0
je 0x478979
push eax
call dword [0xac32e4]
xor eax, eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], eax
jle 0x478872
lea ecx, [esp + 0x120]
call fcn.0043b784
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0xb
jge 0x47882c
cmp byte [ebp + 0xc], 0
jne 0x4789b0
test edi, edi
jne 0x4797f0
push dword [esp + 0x5c]
movdqa xmm0, xmmword [0xaba7a0]
lea ecx, [esp + 0x240]
push ecx
xor eax, eax
lea ecx, [esp + 0x234]
push ecx
push eax
lea ecx, [esp + 0xe0]
mov dword [esp + 0xe0], eax
movdqu xmmword [esp + 0x23c], xmm0
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], eax
call fcn.0043b7f5
xor eax, eax
mov dword [esp + 0x14], 0x2061f665
push 3
mov dword [esp + 0x18], eax
pop edi
jmp 0x478a24
mov byte [esp + 0xb], al
cmp byte [esp + 0xb], 0
je 0x478a20
push eax
call dword [0xac33e0]
xor eax, eax
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jle 0x478a0c
mov dword [esp + 0x14], eax
jmp 0x478ab8
mov dword [esp + 0x10], esi
mov dword [esp + 0x10], eax
jmp 0x478a73
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xd0]
cmp dword [ecx + edx*4], eax
jne 0x478a79
mov byte [esp + 0xb], al
cmp byte [esp + 0xb], 0
je 0x478a6f
push eax
call dword [0xac3448]
push eax
call dword [0xac341c]
push eax
call dword [0xac30f8]
xor eax, eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jle 0x478a3d
mov dword [esp + 0x10], 0x17
jmp 0x478aad
mov byte [esp + 0xb], al
cmp byte [esp + 0xb], 0
je 0x478aa9
push 0x21a8
call dword [0xac3448]
push eax
call dword [0xac341c]
push eax
call dword [0xac3100]
xor eax, eax
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffff1
je 0x478a83
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x478a33
lea ecx, [esp + 0xd0]
call fcn.0043b784
mov dl, byte [ebp + 0xc]
lea eax, [esp + 0x290]
mov ecx, dword [esp + 0x54]
push eax
call fcn.0043ba25
mov esi, eax
lea edi, [esp + 0xac]
xor eax, eax
pop ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x28], 0xfff6
mov dword [esp + 0xc], eax
jmp 0x478b17
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x1d4], eax
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x478b08
mov ecx, dword [esp + 0x1d8]
mov dword [esp + 0x2c], ecx
mov byte [esp + 0xb], al
cmp byte [esp + 0xb], al
je 0x478b3d
push eax
push eax
call dword [0xac30a4]
xor eax, eax
cmp byte [ebp + 0xc], 0
je 0x47913c
cmp dword [esp + 0xb0], 0
je 0x47913c
mov dword [esp + 0x14], 0xbf5c
mov dword [esp + 0xc], eax
push 3
mov dword [esp + 0x30], 0xef407293
mov dword [esp + 0x10], eax
pop edi
jmp 0x478b81
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x23c], eax
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x478b72
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
cmp edx, ecx
push 0
pop ecx
setne cl
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], 0xffffffe6
jmp 0x478da0
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0xc], 0xc
cmp dword [esp + 0xc], 0x28
jne 0x478d9c
xor esi, esi
inc esi
mov dword [esp + 0x18], 0xbf0ddd9c
mov dword [esp + 0x18], eax
jmp 0x478bf8
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x58], 0xffffffff
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x478be8
mov byte [esp + 0xb], al
cmp byte [esp + 0xb], 0
je 0x478c24
push 0x175
call dword [0xac3448]
push eax
call dword [0xac341c]
push eax
call dword [0xac3124]
xor eax, eax
mov dword [esp + 0x18], eax
jmp 0x478d83
mov dword [esp + 0x1c], 9
lea ecx, [esp + 0x108]
push esi
call fcn.0043b6b2
push esi
lea ecx, [esp + 0x164]
call fcn.0043b6b2
xor eax, eax
mov dword [esp + 0x10], eax
jmp 0x478c6d
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x108]
mov dword [ecx + edx*4], 0xfffffffb
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x478c57
mov dword [esp + 0x10], eax
jmp 0x478c8f
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x160]
mov dword [ecx + edx*4], 0xb7f45b6
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x478c79
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x1c], eax
jl 0x478d15
mov ecx, dword [esp + 0x18]
push 0
mov edx, dword [esp + ecx*4 + 0x5c]
mov ecx, dword [esp + 0x24]
cmp edx, ecx
mov ecx, dword [esp + 0x10c]
pop edx
setle dl
mov dword [ecx], edx
test edx, edx
je 0x478d03
mov ecx, dword [esp + 0x20]
cmp dword [esp + 0x14], eax
je 0x478d03
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x108]
cmp dword [ecx], eax
je 0x478ce3
cmp dword [esp + 0x58], eax
je 0x478ce3
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov edx, esi
mov ecx, dword [esp + 0x23c]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + ecx*4 + 0x58]
mov ecx, dword [esp + 0x160]
cmp dword [ecx], eax
jne 0x478d05
mov edx, eax
mov ecx, dword [esp + 0x18]
add ecx, edx
mov dword [esp + 0x2c], ecx
dec dword [esp + 0x1c]
jns 0x478c9f
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x1c], eax
jl 0x478d65
mov byte [esp + 0xb], al
cmp byte [esp + 0xb], 0
je 0x478d39
push 0x14db
push eax
push eax
call dword [0xac32cc]
xor eax, eax
mov byte [esp + 0xb], al
cmp byte [esp + 0xb], 0
je 0x478d5f
push eax
push eax
push 0x19c7
push 0xe18
call dword [0xac3448]
push eax
call dword [0xac3438]
xor eax, eax
dec dword [esp + 0x1c]
jns 0x478d1f
lea ecx, [esp + 0x160]
call fcn.0043b784
lea ecx, [esp + 0x108]
call fcn.0043b784
inc dword [esp + 0x18]
xor eax, eax
cmp dword [esp + 0x18], eax
jle 0x478c2d
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 0x28
je 0x478bda
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0x35
jge 0x478bbc
mov ecx, dword [esp + 0xb4]
xor esi, esi
mov dword [esp + 0xc], 0x5a26cdee
inc esi
mov dword [esp + 0x18], 0xfff9
mov dword [esp + 0x20], 0xd2ca
mov dword [esp + 0x90], ecx
mov dword [esp + 0xc], eax
jmp 0x478dea
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x34], 0xfffffffa
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x478dda
mov dword [esp + 0x34], eax
jmp 0x478fac
push edi
lea ecx, [esp + 0x118]
call fcn.0043b6b2
xor eax, eax
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x14], eax
jmp 0x478e25
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x248], eax
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x478e16
mov dword [esp + 0x14], eax
jmp 0x478e47
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x114]
mov dword [ecx + edx*4], 0x390197f0
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x478e31
mov dword [esp + 0x14], eax
jmp 0x478e66
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x200], 0xdebf889e
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x478e53
cmp dword [esp + 0x34], eax
jne 0x478fb9
mov edi, dword [esp + 0x114]
mov dword [edi + 8], 2
mov dword [esp + 0xc], 0x9576c3a0
lea ecx, [esp + 0x1c8]
push 2
call fcn.0043b6b2
mov dword [esp + 0x2c], esi
xor eax, eax
mov dword [esp + 0x14], 0xe731e7bf
mov dword [esp + 0xc], eax
jmp 0x478ec0
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x1c8]
mov dword [ecx + edx*4], esi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x478eae
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], 2
jg 0x478f84
mov dword [esp + 0x1c], 0xfffffffe
mov dword [esp + 0x10], 0xd72b90f9
mov dword [esp + 0x1c], 2
cmp dword [esp + 0x1c], eax
jl 0x478f2a
mov ecx, dword [esp + 0x24c]
xor ecx, ecx
cmp dword [edi + 8], eax
setne cl
mov dword [esp + 0x10], ecx
cmp dword [esp + 0x10], 0x8884515f
mov ecx, dword [esp + 0x34]
sbb esi, esi
xor edx, edx
inc esi
cmp esi, ecx
setge dl
mov dword [esp + 0x200], edx
dec dword [esp + 0x1c]
jns 0x478ef4
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x30], eax
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
sub esi, 0x2a77b69c
neg esi
sbb esi, esi
xor edx, edx
inc esi
neg esi
cmp ecx, esi
mov ecx, dword [esp + 0x200]
setl dl
mov dword [esp + 0x30], edx
xor edx, edx
cmp ecx, dword [esp + 0x30]
setne dl
mov dword [esp + 0x10], edx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jle 0x478ed6
xor esi, esi
inc esi
lea ecx, [esp + 0x1c8]
call fcn.0043b784
dec dword [edi + 8]
jns 0x478e84
lea ecx, [esp + 0x114]
call fcn.0043b784
dec dword [esp + 0x34]
push 3
pop edi
cmp dword [esp + 0x34], 0xfffffff4
jg 0x478df9
jmp 0x478fc5
lea ecx, [esp + 0x114]
call fcn.0043b784
mov dword [esp + 0xc], 6
jmp 0x479123
push esi
lea ecx, [esp + 0x170]
call fcn.0043b6b2
push dword [esp + 0x5c]
movdqa xmm0, xmmword [0xaba7c0]
lea ecx, [esp + 0x230]
push ecx
xor eax, eax
lea ecx, [esp + 0x224]
push ecx
push eax
lea ecx, [esp + 0xf0]
mov dword [esp + 0xf0], eax
movdqu xmmword [esp + 0x22c], xmm0
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], eax
call fcn.0043b7f5
mov dword [esp + 0x30], esi
mov dword [esp + 0x2c], 0xfffffffd
mov dword [esp + 0x10], 0
jmp 0x479054
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x16c]
mov dword [eax + ecx*4], 0x2384b6d7
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x47903e
mov dword [esp + 0x10], 0
jmp 0x479077
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1f8], 0x78ff5f6f
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x479064
mov eax, dword [esp + 0x34]
xor ecx, ecx
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xe0]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
imul eax, dword [esp + 0x20]
cmp eax, dword [esi + 4]
mov eax, dword [esp + 0x18]
setne cl
xor edx, edx
cmp ecx, eax
setg dl
sub edx, dword [esp + 0x30]
neg edx
sbb edx, edx
xor eax, eax
inc edx
cmp edx, dword [esi + 4]
setle al
cmp eax, 0xffffffff
sbb eax, eax
or ecx, 0xffffffff
inc eax
xor edx, edx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x30]
sub ecx, eax
mov eax, dword [esp + 0x16c]
cmp dword [eax], ecx
lea ecx, [esp + 0xe0]
mov eax, dword [esp + 0x34]
setle dl
add eax, edx
mov dword [esp + 0x1fc], eax
call fcn.0043b784
lea ecx, [esp + 0x16c]
call fcn.0043b784
dec dword [esp + 0xc]
push 1
pop esi
cmp dword [esp + 0xc], 0xffffffe2
je 0x478fd2
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x94], eax
mov edi, dword [esp + 0x24]
test edi, edi
jne 0x4797f0
cmp dword [esp + 0xa8], edi
jle 0x4797f0
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0xc], 0xfffffff9
jmp 0x479186
mov byte [esp + 0xb], 0
cmp byte [esp + 0xb], 0
je 0x47917b
push 0
call dword [0xac32dc]
cmp dword [esp + 0xc], 0
jne 0x47918d
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xffffffe3
jge 0x479167
mov dword [esp + 0x28], 0xc93b4e1a
mov byte [esp + 0xb], 0
cmp byte [esp + 0xb], 0
je 0x4791ac
push 0x26ba
call dword [0xac30a8]
mov byte [esp + 0xb], 0
cmp byte [esp + 0xb], 0
je 0x4791d3
push 0x1f1
push 0
call dword [0xac3448]
push eax
call dword [0xac341c]
push eax
call dword [0xac310c]
push 2
lea ecx, [esp + 0x158]
call fcn.0043b6b2
xor esi, esi
lea ecx, [esp + 0xb8]
inc esi
push esi
call fcn.0043b6b2
mov dword [esp + 0x20], 0xf7c8b166
xor eax, eax
mov dword [esp + 0x18], 0xfffffff8
mov dword [esp + 0x30], esi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
jmp 0x47922b
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x154]
mov dword [ecx + edx*4], 0x14c405b4
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x479215
mov dword [esp + 0x10], eax
jmp 0x47924a
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xb8]
mov dword [ecx + edx*4], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x479238
mov esi, dword [esp + 0x154]
xor edx, edx
mov ecx, dword [esp + 0x20]
dec dword [esi + 4]
inc edx
mov dword [esp + 0x28], 0x6595ad33
mov dword [esp + 0x40], 0x38d679bd
mov dword [esp + 0x30], 0x89405dbd
mov dword [esp + 0x40], 0xfffffff7
mov dword [esp + 0x40], 0x25423b19
mov dword [esp + 0xc], 0x59a7032f
mov dword [esp + 0x10], 9
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], eax
jmp 0x4792af
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x60], eax
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x4792a3
mov byte [esp + 0xb], al
cmp byte [esp + 0xb], al
je 0x4792d0
push eax
push 0x744
call dword [0xac3304]
xor edx, edx
xor eax, eax
inc edx
mov ecx, dword [esp + 0x30]
mov ecx, dword [esp + 0xb8]
mov ecx, dword [ecx]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x30]
mov ecx, dword [esp + 0x60]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x60]
mov ecx, dword [esp + 0xb8]
cmp dword [ecx], 0x7be4
jne 0x479313
mov ecx, edx
cmp dword [esi + 4], eax
jne 0x479315
mov ecx, eax
dec dword [esp + 0x18]
xor edx, edx
mov eax, dword [esp + 0x1c]
cmp ecx, eax
mov eax, dword [esp + 0x20]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x18]
setne cl
sub eax, ecx
mov ecx, 0xfff9
neg eax
sbb eax, eax
inc eax
cmp ecx, eax
mov eax, dword [esp + 0x14]
sbb ecx, ecx
neg ecx
sub ecx, dword [esi + 4]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xb8]
setg dl
imul edx, dword [esi + 4]
imul ecx, edx
xor edx, edx
mov dword [eax], ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x40]
cmp eax, ecx
mov eax, dword [esp + 0x28]
setge dl
xor ecx, ecx
cmp eax, edx
setl cl
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0xb8]
call fcn.0043b784
lea ecx, [esp + 0x154]
call fcn.0043b784
push 2
lea ecx, [esp + 0x84]
call fcn.0043b6b2
xor eax, eax
xor esi, esi
mov dword [esp + 0x44], eax
inc esi
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x18], 8
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], 2
jge 0x4793f0
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x80]
mov dword [ecx + edx*4], esi
inc dword [esp + 0xc]
jmp 0x4793d5
mov dword [esp + 0x44], esi
cmp dword [esp + 0x44], eax
jl 0x4796d0
mov ecx, 0xb293c34f
mov dword [esp + 0x14], esi
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0x1ac], ecx
mov dword [esp + 0x1b0], ecx
mov dword [esp + 0x1b4], ecx
mov dword [esp + 0x28], 0x5e2623e
mov dword [esp + 0x2c], 0x2106df3f
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x44]
cmp edx, ecx
mov ecx, dword [esp + 0x44]
push 0
pop edx
setne dl
neg ecx
cmp ecx, edx
jg 0x479455
mov ecx, eax
cmp dword [esp + 0x14], eax
je 0x479457
mov ecx, esi
imul ecx, ecx, 0xffff
test ecx, ecx
je 0x479465
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x80]
mov ecx, dword [esp + 0x80]
push 0
mov ecx, dword [ecx + edx*4]
mov edx, dword [esp + 0x18]
mov dword [edi + esi*4], ecx
mov ecx, dword [esp + 0x48]
cmp edx, ecx
mov ecx, dword [esp + 0x18]
pop edx
setl dl
add ecx, 0x164
add edx, ecx
mov ecx, dword [esp + 0x50]
cmp ecx, edx
push 0
pop ecx
setle cl
xor edx, edx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0x28], ecx
mov esi, dword [edi + esi*4]
mov ecx, dword [esp + 0x14]
setg dl
sub esi, edx
xor edx, edx
cmp esi, ecx
setle dl
sub edx, dword [esp + 0x4c]
je 0x479527
xor esi, esi
mov dword [esp + 0x14], eax
inc esi
jmp 0x47951c
mov byte [esp + 0xb], al
cmp byte [esp + 0xb], 0
je 0x4794f2
push 0x1865
push eax
call dword [0xac32fc]
xor eax, eax
mov byte [esp + 0xb], al
cmp byte [esp + 0xb], 0
je 0x479518
push eax
push eax
push 0x170f
push 0xf87
call dword [0xac3448]
push eax
call dword [0xac33fc]
xor eax, eax
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jle 0x4794d9
jmp 0x4796a8
mov dword [esp + 0x20], 0x21f5
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], 0xfffffffb
jge 0x4796a5
push dword [esp + 0x5c]
movdqa xmm0, xmmword [0xaba7b0]
lea ecx, [esp + 0x220]
push ecx
lea ecx, [esp + 0x214]
mov dword [esp + 0x30], 0xffffffff
push ecx
push eax
lea ecx, [esp + 0x100]
mov dword [esp + 0x100], eax
movdqu xmmword [esp + 0x21c], xmm0
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], eax
call fcn.0043b7f5
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x44]
neg edi
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
sbb edi, edi
neg edi
cmp eax, ecx
mov eax, dword [esp + 0x80]
push 0
pop ecx
setne cl
imul ecx, dword [eax + edx*4]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x28], ecx
xor ecx, ecx
cmp dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
setl cl
xor edx, edx
cmp ecx, eax
setle dl
xor ecx, ecx
add edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
cmp edx, eax
mov eax, dword [esp + 0x44]
setl cl
xor edx, edx
cmp ecx, eax
setne dl
xor ecx, ecx
mov dword [esp + 0x1b0], edx
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x20]
cmp edx, eax
mov eax, dword [esp + 0x20]
setl cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x80]
setl dl
imul edx, dword [eax + esi*4]
neg edx
sbb edx, edx
xor eax, eax
neg edx
cmp edi, edx
setge al
sub eax, dword [esp + 0x14]
sub eax, dword [esp + 0x44]
mov esi, dword [esp + 0xf0]
neg eax
sbb eax, eax
xor edx, edx
inc eax
inc edx
mov dword [esp + 0x28], eax
xor eax, eax
cmp dword [esi + 8], edx
setg al
xor ecx, ecx
cmp eax, 0x93e3
mov eax, 0xfff9
setle cl
cmp eax, ecx
sbb eax, eax
inc eax
cmp eax, dword [esp + 0x14]
jne 0x479669
cmp dword [esp + 0x20], 0
jne 0x47966b
xor edx, edx
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x80]
sub edx, dword [eax + ecx*4]
xor ecx, ecx
mov eax, dword [esp + 0x2c]
cmp edx, eax
setl cl
mov dword [esi + 8], ecx
lea ecx, [esp + 0xf0]
call fcn.0043b784
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xfffffffb
push 0
pop eax
jl 0x47953e
xor esi, esi
inc esi
mov byte [esp + 0xb], al
cmp byte [esp + 0xb], 0
je 0x4796bd
push eax
push eax
call dword [0xac340c]
xor eax, eax
dec dword [esp + 0x44]
mov ecx, 0xb293c34f
jns 0x479403
mov edi, dword [esp + 0x24]
lea ecx, [esp + 0x80]
call fcn.0043b784
cmp dword [esp + 0xac], 0
je 0x4797f0
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0xc], 0xfffffff9
jmp 0x47971b
mov byte [esp + 0xb], 0
cmp byte [esp + 0xb], 0
je 0x479710
push 0
call dword [0xac32dc]
cmp dword [esp + 0xc], 0
jne 0x479722
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xffffffe3
jge 0x4796fc
mov ecx, dword [esp + 0xac]
call fcn.00477cd3
mov dword [esp + 0xc], 0xfffffffa
mov edi, eax
mov dword [esp + 0x24], 0x532bb11a
xor eax, eax
mov dword [esp + 0x24], 0xfffffffd
mov dword [esp + 0x24], 0x9f58382b
mov dword [esp + 0x28], 0xffffffff
mov byte [esp + 0xb], al
cmp byte [esp + 0xb], al
je 0x47978c
push 0x1972
push eax
push eax
push 0x20b4
push 0x13e0
push eax
call dword [0xac3448]
push eax
call dword [0xac341c]
push eax
call dword [0xac30a0]
xor eax, eax
mov ecx, dword [esp + 0xc]
xor edx, edx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x24]
test ecx, ecx
mov ecx, dword [esp + 0xc]
setg dl
cmp edx, ecx
push 0
pop ecx
setl cl
sub ecx, 0x48b1
neg ecx
sbb ecx, ecx
inc ecx
imul ecx, dword [esp + 0xc]
sub ecx, 0xa
jne 0x4797c8
mov ecx, eax
cmp dword [esp + 0xc], eax
je 0x4797ca
mov ecx, esi
mov eax, dword [esp + 0xc]
sub eax, ecx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x54]
push eax
call fcn.00479efb
mov dword [eax], edi
push 2
pop esi
mov dword [esp + 0x14], 0x42c70bb7
lea ecx, [esp + 0x12c]
push esi
call fcn.0043b6b2
xor eax, eax
mov dword [esp + 0x10], eax
jmp 0x479823
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x9c], 0xfffffffe
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x479810
mov dword [esp + 0x10], eax
jmp 0x479846
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x12c]
mov dword [ecx + edx*4], 0x39c7c6f1
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x479830
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], esi
jg 0x4798db
xor esi, esi
inc esi
mov dword [esp + 0x24], esi
mov ecx, dword [esp + 0x14]
push 0
mov ecx, dword [esp + ecx*4 + 0xa0]
mov ecx, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + ecx*4 + 0xa0]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + ecx*4 + 0xa0]
mov ecx, dword [esp + 0x28]
cmp ecx, edx
mov ecx, dword [esp + 0x18]
pop edx
setne dl
push 0
mov ecx, dword [esp + ecx*4 + 0xa0]
sub ecx, dword [esp + 0xa8]
imul edx, ecx
xor ecx, ecx
cmp edx, 0xfffffffa
setg cl
lea edx, [ecx + 1]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + ecx*4 + 0xa0]
cmp ecx, edx
mov ecx, dword [esp + 0x130]
pop edx
setg dl
mov dword [ecx], edx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jle 0x47985d
jmp 0x4798de
xor esi, esi
inc esi
mov dword [esp + 0x14], eax
jmp 0x47991b
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x12c]
mov ecx, dword [edx + ecx*4]
mov dword [edx + esi*4], ecx
mov byte [esp + 0xb], al
cmp byte [esp + 0xb], 0
je 0x479914
push eax
call dword [0xac3448]
push eax
call dword [0xac33e8]
xor eax, eax
inc dword [esp + 0x14]
xor esi, esi
inc esi
cmp dword [esp + 0x14], esi
jle 0x4798e4
lea ecx, [esp + 0x12c]
call fcn.0043b784
lea ecx, [esp + 0xa8]
call fcn.0043d410
mov dword [esp + 0x10], 0xe5a60d00
lea ecx, [esp + 0x184]
mov dword [esp + 0xc], 8
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0x28fdeb77
mov dword [esp + 0x18], 0xf90a3cfc
push esi
call fcn.0043b6b2
xor eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0xc], eax
jmp 0x479994
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x184]
mov dword [ecx + edx*4], eax
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x479982
mov ecx, dword [esp + 0x20]
xor edx, edx
mov ecx, dword [esp + 0x20]
cmp ecx, 0xfffffff8
mov dword [esp + 0xc], 0xfffffff9
setne dl
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x28], edx
xor edx, edx
cmp dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x24]
sete dl
xor esi, esi
cmp edx, ecx
push esi
pop ecx
setl cl
add ecx, dword [esp + 0x18]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x28]
sub edx, ecx
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
imul esi, edx
cmp esi, 8
setne cl
add ecx, dword [esp + 0x24]
je 0x479a0d
cmp dword [esp + 0x10], eax
je 0x479a0d
xor edx, edx
inc edx
mov ecx, edx
jmp 0x479a12
xor edx, edx
mov ecx, eax
inc edx
cmp ecx, dword [esp + 0x20]
jl 0x479a33
mov dword [esp + 0x24], edx
mov dword [esp + 0xc], eax
jmp 0x479a2a
dec dword [esp + 0x24]
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 0x12
je 0x479a22
jmp 0x479aa1
mov dword [esp + 0x28], 0x15fb26c
push 3
mov dword [esp + 0x2c], 0xb88cdf8a
pop edx
mov dword [esp + 0x28], edx
mov dword [esp + 0xc], eax
jmp 0x479a63
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x284], 0x7e294b58
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x479a50
mov dword [esp + 0x18], 0xfffffff7
jmp 0x479a9a
mov dword [esp + 0xc], eax
jmp 0x479a8c
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x260], 0x2ef7e291
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x479a79
dec dword [esp + 0x2c]
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x18
je 0x479a73
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], eax
jl 0x479aca
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x184]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
dec dword [esp + 0x10]
jns 0x479aab
lea ecx, [esp + 0x184]
call fcn.0043b784
test edi, edi
je 0x479b34
mov dword [esp + 0x28], 0xfffffffa
mov byte [esp + 0xb], 0
cmp byte [esp + 0xb], 0
je 0x479b02
call dword [0xac3448]
push eax
call dword [0xac341c]
push eax
call dword [0xac309c]
mov byte [esp + 0xb], 0
cmp byte [esp + 0xb], 0
je 0x479b14
call dword [0xac33dc]
mov edx, dword [esp + 0x38]
mov ecx, edi
call fcn.00477d8f
mov esi, eax
lea eax, [esp + 0x7c]
push eax
mov dword [esp + 0x90], esi
call fcn.00479e99
mov dword [eax], esi
push 3
lea ecx, [esp + 0x68]
call fcn.0043b6b2
xor esi, esi
mov dword [esp + 0x10], 0x6aabecba
inc esi
xor eax, eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], eax
jmp 0x479b69
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x64]
mov dword [ecx + edx*4], 0x313dd33a
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x479b56
mov dword [esp + 0x10], eax
jmp 0x479b89
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x1e0], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x479b76
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], 2
jg 0x479df8
call fcn.0043b784
mov eax, dword [ebp + 8]
lea esi, [esp + 0x8c]
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
ret