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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x140
push esi
push edi
push 1
mov dword [esp + 0x40], ecx
mov dword [esp + 0x18], 0xfffffff7
pop edi
mov dword [esp + 0x14], 0xffffffeb
cmp dword [esp + 0x14], 0xfffffff1
push 0
mov dword [esp + 0x3c], edx
pop eax
jl 0x4757ea
mov dword [esp + 0x24], edi
mov byte [esp + 0x1b], al
cmp byte [esp + 0x1b], 0
je 0x475726
push 0x19b7
push 0x1258
call dword [0xabc464]
push eax
call dword [0xabc448]
push eax
call dword [0xabc104]
mov dword [esp + 0x24], 9
cmp dword [esp + 0x24], 0x14
jge 0x4757d8
xor esi, esi
push 4
lea ecx, [esp + 0xd0]
call fcn.00437d11
mov dword [esp + 0x1c], 0x8987f2fb
mov dword [esp + 0x10], esi
jmp 0x47576d
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xcc]
mov dword [eax + ecx*4], 2
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x475757
mov dword [esp + 0x1c], esi
cmp dword [esp + 0x1c], 3
jg 0x4757bd
push 8
pop eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x10], 3
cmp dword [esp + 0x10], esi
jl 0x4757b2
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xcc]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
dec dword [esp + 0x10]
jns 0x475794
push 8
pop eax
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 3
jle 0x475782
lea ecx, [esp + 0xcc]
call fcn.00437de3
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 0x14
jl 0x47573b
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0xfffffff1
push 0
pop eax
jge 0x4756f9
mov dword [esp + 8], 0xfffffffa
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], eax
jmp 0x47580c
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x40], 0x8bbca631
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x4757fc
mov dword [esp + 8], edi
cmp dword [esp + 8], eax
jl 0x47583e
mov ecx, dword [esp + 8]
xor edx, edx
mov esi, dword [esp + ecx*4 + 0x40]
mov dword [esp + 0x44], esi
mov ecx, dword [esp + 8]
cmp esi, ecx
setg dl
mov dword [esp + 0x14], edx
dec dword [esp + 8]
jns 0x47581d
mov dword [esp + 0x14], eax
jmp 0x475a5e
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x1c], 0xdf5444fe
mov dword [esp + 0x34], 0x8a35
mov dword [esp + 0x30], 6
mov byte [esp + 0x1b], al
cmp byte [esp + 0x1b], 0
je 0x47588a
push eax
call dword [0xabc464]
push eax
call dword [0xabc45c]
xor eax, eax
mov dword [esp + 8], eax
jmp 0x475a4f
mov dword [esp + 0x24], 0xfffffffd
mov dword [esp + 0x1c], 0xfffffffa
mov dword [esp + 0x2c], 0xfffffff7
cmp dword [esp + 0x10], 0x814b11f3
jae 0x4758ef
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0x24], eax
je 0x4758cb
mov esi, edi
cmp dword [esp + 0x10], eax
jne 0x4758cd
mov esi, eax
mov ecx, dword [esp + 8]
xor edx, edx
cmp esi, ecx
mov ecx, 0xfffc
setne dl
cmp ecx, edx
sbb ecx, ecx
neg ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x40]
xor edx, edx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
cmp ecx, 0xfffffffe
setg dl
cmp dword [esp + 0x24], edx
jle 0x475911
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x44], ecx
add ecx, 0xc8f9
jne 0x475931
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
imul ecx, dword [esp + 0x14]
mov dword [esp + 0x2c], ecx
cmp dword [esp + 0x40], eax
je 0x475a0e
mov dword [esp + 0xc], 0xfffffffd
cmp dword [esp + 0xc], eax
je 0x475966
mov esi, edi
cmp dword [esp + 0x14], eax
jne 0x475968
mov esi, eax
mov ecx, dword [esp + 0x10]
xor edx, edx
cmp esi, ecx
push 0
setl dl
sub edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x28]
neg edx
sbb edx, edx
inc edx
mov dword [esp + 0x34], edx
xor edx, edx
cmp dword [esp + 0x34], ecx
setge dl
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
cmp ecx, edx
pop ecx
setge cl
xor edx, edx
add ecx, dword [esp + 0x10]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x30], ecx
push 0
setle dl
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x20]
cmp edx, ecx
pop ecx
setne cl
push 8
pop edx
cmp edx, ecx
mov ecx, dword [esp + 8]
sbb esi, esi
inc esi
sub esi, ecx
mov ecx, dword [esp + 0x14]
imul esi, ecx
mov dword [esp + 0x40], esi
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
add ecx, esi
add edx, ecx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x2c]
add edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
neg edx
sbb edx, edx
neg edx
imul ecx, edx
test ecx, ecx
mov ecx, edi
jne 0x475a10
mov ecx, eax
cmp ecx, dword [esp + 0x24]
je 0x475a1e
mov edx, eax
cmp dword [esp + 0xc], eax
je 0x475a20
mov edx, edi
mov ecx, dword [esp + 0x2c]
sub edx, ecx
jne 0x475a30
mov edx, eax
cmp dword [esp + 0x20], eax
je 0x475a32
mov edx, edi
xor ecx, ecx
cmp edx, edi
setle cl
sub ecx, dword [esp + 0x34]
neg ecx
sbb ecx, ecx
add ecx, 0x7dc4b54d
mov dword [esp + 0x30], ecx
dec dword [esp + 8]
cmp dword [esp + 8], 0xffffffea
jne 0x475893
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xfffffffb
jge 0x475847
mov ecx, dword [0xaba0c4]
test cl, 1
jne 0x475af1
push eax
or ecx, edi
mov dword [0xaba0d0], eax
push eax
mov dword [0xaba0c4], ecx
mov dword [0xaba0d4], eax
call fcn.00403cad
mov ecx, eax
mov dword [0xaba0ec], 0x3f800000
mov dword [0xaba0d0], ecx
xor eax, eax
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x80]
push ecx
push 0x10
push eax
mov dword [0xaba0d8], eax
mov ecx, 0xaba0d8
mov dword [0xaba0e0], eax
mov dword [0xaba0dc], eax
lea eax, [esp + 0x124]
push eax
call fcn.004039e3
push 8
pop eax
push 0x4bf0e5
mov dword [0xaba0e4], 7
mov dword [0xaba0e8], eax
call fcn.0049b3bf
pop ecx
imul eax, dword [esp + 0x3c], 0x2710
lea ecx, [esp + 0xf4]
push edi
add eax, dword [esp + 0x3c]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x2c], 0x6a53d06c
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x2c], edi
call fcn.00437d11
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0xc], eax
jmp 0x475b44
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0xf4]
mov dword [ecx + edx*4], 0xfffffff9
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x475b2e
inc dword [esp + 0x20]
mov byte [esp + 0x1b], al
cmp byte [esp + 0x1b], al
je 0x475b66
push eax
call dword [0xabc464]
push eax
call dword [0xabc434]
lea ecx, [esp + 0xf4]
call fcn.00437de3
lea eax, [esp + 0x58]
push eax
call fcn.004766f6
push 3
lea ecx, [esp + 0xa0]
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
call fcn.00437d11
xor esi, esi
lea ecx, [esp + 0x10c]
mov dword [esp + 0x2c], esi
mov dword [esp + 0xc], esi
mov dword [esp + 0x20], 0x87b35f19
mov dword [esp + 0x14], 0xafe2499e
mov dword [esp + 0x10], 0x4829
mov dword [esp + 0x1c], 0x959af2c6
mov dword [esp + 0x30], 0x1af5
mov dword [esp + 0x24], 0x32a49e86
mov dword [esp + 0x34], 0xffff
push 2
call fcn.00437d11
xor eax, eax
push 3
mov dword [esp + 0xc], eax
pop esi
jmp 0x475c01
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x9c]
mov dword [ecx + edx*4], 8
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x475beb
mov dword [esp + 8], eax
jmp 0x475c1d
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x5c], 0x673ed132
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x475c0d
mov dword [esp + 8], eax
jmp 0x475c3f
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x10c]
mov dword [ecx + edx*4], 0xfffffffa
inc dword [esp + 8]
cmp dword [esp + 8], 2
jl 0x475c29
cmp dword [esp + 0x2c], eax
jne 0x475c89
mov ecx, dword [esp + 0x9c]
mov esi, dword [ecx]
mov ecx, dword [esp + 0x2c]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, 0xafbf
setl dl
xor ecx, ecx
cmp edx, esi
setne cl
xor edx, edx
imul ecx, ecx, 0x8dc5
cmp ecx, esi
mov esi, eax
setge dl
mov dword [esp + 0xc], edx
cmp dword [esp + 0xc], eax
je 0x475c8b
mov esi, edi
mov ecx, dword [esp + 0x9c]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x20]
imul edx, esi
sub edx, ecx
mov ecx, dword [esp + 0x9c]
imul edx, dword [ecx + 8]
mov dword [esp + 0x20], edx
mov ecx, dword [esp + 0x20]
sub ecx, dword [esp + 0x2c]
je 0x475cbe
mov edx, edi
cmp dword [esp + 0x14], eax
jne 0x475cc0
mov edx, eax
mov ecx, dword [esp + 0x64]
imul ecx, edx
cmp ecx, dword [esp + 0x10]
jne 0x475cd1
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0xc]
cmp ecx, edx
push 0
pop ecx
setle cl
add ecx, 0x2a589dd5
neg ecx
sbb ecx, ecx
inc ecx
add ecx, 0x7bff470d
jne 0x475cfe
cmp dword [esp + 0x2c], eax
je 0x475d00
mov eax, edi
mov dword [esp + 0x1c], eax
lea ecx, [esp + 0x10c]
mov eax, dword [esp + 0x60]
mov eax, dword [esp + 0x60]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x60]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x60]
inc dword [esp + 0x24]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x34], 9
mov eax, dword [esp + 0x10]
dec eax
mov dword [esp + 0x34], eax
call fcn.00437de3
lea ecx, [esp + 0x9c]
call fcn.00437de3
mov eax, dword [esp + 0x28]
test eax, eax
je 0x475d79
mov dword [esp + 0x90], eax
jmp 0x476672
mov eax, dword [0xaba0c4]
push 2
pop esi
test al, 2
jne 0x475e03
or eax, esi
mov dword [0xaba0c4], eax
xor eax, eax
push eax
push eax
mov dword [0xaba0f0], eax
mov dword [0xaba0f4], eax
call fcn.00403cad
mov ecx, eax
mov dword [0xaba10c], 0x3f800000
mov dword [0xaba0f0], ecx
xor eax, eax
mov dword [esp + 0xa8], ecx
lea ecx, [esp + 0xa8]
push ecx
push 0x10
push eax
mov dword [0xaba0f8], eax
mov ecx, 0xaba0f8
mov dword [0xaba100], eax
mov dword [0xaba0fc], eax
lea eax, [esp + 0xfc]
push eax
call fcn.004039e3
push 8
pop eax
push 0x4bf0e0
mov dword [0xaba104], 7
mov dword [0xaba108], eax
call fcn.0049b3bf
pop ecx
push esi
lea ecx, [esp + 0xe8]
call fcn.00437d11
push 3
lea ecx, [esp + 0xdc]
call fcn.00437d11
xor eax, eax
mov dword [esp + 0x14], eax
jmp 0x475e3c
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xe4]
mov dword [ecx + edx*4], 0xad59
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x475e26
mov dword [esp + 0x14], eax
jmp 0x475e5e
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xd8]
mov dword [ecx + edx*4], 6
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x475e48
mov byte [esp + 0x1b], al
cmp byte [esp + 0x1b], al
je 0x475e75
call dword [0xabc328]
mov eax, dword [esp + 0xe4]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0xd8]
mov dword [eax + 4], ecx
lea ecx, [esp + 0xd8]
call fcn.00437de3
lea ecx, [esp + 0xe4]
call fcn.00437de3
lea eax, [esp + 0x3c]
xorps xmm0, xmm0
push eax
movdqu xmmword [esp + 0xb0], xmm0
call fcn.00476758
push esi
lea ecx, [esp + 0x6c]
mov eax, dword [eax]
mov dword [esp + 0x20], eax
call fcn.00437d11
xor eax, eax
mov dword [esp + 0xc], eax
jmp 0x475ee2
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x68]
mov dword [ecx + edx*4], 0x32b1cecb
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x475ecf
mov esi, dword [esp + 0x68]
cmp dword [esi], eax
je 0x475f77
mov ecx, dword [esi]
mov edx, dword [esi]
sub edx, dword [esi + 4]
mov esi, dword [esi]
mov dword [esp + 0x2c], 0x3384
mov dword [esp + 0x20], edi
mov dword [esp + 0x20], 0x21fbb9
mov dword [esp + 0x28], 0x49bc00ea
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
cmp edx, ecx
push 0
pop ecx
setl cl
add ecx, 0xffff0004
neg ecx
sbb ecx, ecx
inc ecx
add ecx, esi
cmp ecx, esi
jle 0x475f40
test esi, esi
je 0x475f40
mov eax, edi
xor edx, edx
cmp eax, esi
setne dl
imul edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x68]
imul edx, dword [eax]
mov eax, dword [esp + 0x2c]
sub edx, 2
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
setge cl
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], eax
jmp 0x476043
mov dword [esp + 0xc], 0x881826fb
mov ecx, 0xf9611ca4
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], ecx
mov dword [esp + 0x20], 0xfffffff9
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x20], 6
mov dword [esp + 0xc], eax
jmp 0x476032
mov dword [esp + 0x28], 0xffffffff
xor edx, edx
mov dword [esp + 0x34], 0x8b5a
mov dword [esp + 0x30], 0xe87122a2
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0xc4]
mov eax, dword [esp + 0x68]
cmp ecx, dword [eax]
setg dl
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x68]
add ecx, dword [eax]
mov dword [esp + 0x20], ecx
xor ecx, ecx
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x34]
cmp eax, 0xde45
mov eax, 0xb6c411e6
setl cl
cmp eax, ecx
sbb eax, eax
neg eax
mov dword [esp + 0x30], eax
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xffffffeb
je 0x475fbe
mov eax, dword [esp + 0x68]
mov dword [eax], 0x8c8a251a
lea ecx, [esp + 0x68]
call fcn.00437de3
mov al, byte [ebp + 0xc]
test al, al
jne 0x47605a
cmp dword [esp + 0x1c], 0
jne 0x4760a4
lea ecx, [esp + 0x138]
mov dl, al
push ecx
mov ecx, dword [esp + 0x40]
call fcn.00438084
mov esi, eax
lea edi, [esp + 0xb0]
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]
xor edi, edi
inc edi
cmp byte [ebp + 0xc], 0
je 0x4760a4
mov ecx, dword [esp + 0xb4]
test ecx, ecx
je 0x4760a4
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], ecx
push 3
lea ecx, [esp + 0x88]
call fcn.00437d11
xor esi, esi
lea ecx, [esp + 0x100]
mov dword [esp + 0x2c], esi
mov dword [esp + 0xc], esi
mov dword [esp + 0x20], 0x87b35f19
mov dword [esp + 0x30], 0xafe2499e
mov dword [esp + 0x10], 0x4829
mov dword [esp + 0x24], 0x959af2c6
mov dword [esp + 0x34], 0x1af5
mov dword [esp + 0x14], 0x32a49e86
mov dword [esp + 0x28], 0xffff
push 2
call fcn.00437d11
xor eax, eax
push 3
mov dword [esp + 0xc], eax
pop esi
jmp 0x476123
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x84]
mov dword [ecx + edx*4], 8
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x47610d
mov dword [esp + 8], eax
jmp 0x47613f
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x74], 0x673ed132
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x47612f
mov dword [esp + 8], eax
jmp 0x476161
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x100]
mov dword [ecx + edx*4], 0xfffffffa
inc dword [esp + 8]
cmp dword [esp + 8], 2
jl 0x47614b
cmp dword [esp + 0x2c], eax
jne 0x4761ab
mov ecx, dword [esp + 0x84]
mov esi, dword [ecx]
mov ecx, dword [esp + 0x2c]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, 0xafbf
setl dl
xor ecx, ecx
cmp edx, esi
setne cl
xor edx, edx
imul ecx, ecx, 0x8dc5
cmp ecx, esi
mov esi, eax
setge dl
mov dword [esp + 0xc], edx
cmp dword [esp + 0xc], eax
je 0x4761ad
mov esi, edi
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x20]
imul edx, esi
sub edx, ecx
mov ecx, dword [esp + 0x84]
imul edx, dword [ecx + 8]
mov dword [esp + 0x20], edx
mov ecx, dword [esp + 0x20]
sub ecx, dword [esp + 0x2c]
je 0x4761e0
mov edx, edi
cmp dword [esp + 0x30], eax
jne 0x4761e2
mov edx, eax
mov ecx, dword [esp + 0x7c]
imul ecx, edx
cmp ecx, dword [esp + 0x10]
jne 0x4761f3
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0xc]
cmp ecx, edx
push 0
pop ecx
setle cl
add ecx, 0x2a589dd5
neg ecx
sbb ecx, ecx
inc ecx
add ecx, 0x7bff470d
jne 0x476220
cmp dword [esp + 0x2c], eax
je 0x476222
mov eax, edi
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x100]
mov eax, dword [esp + 0x78]
mov eax, dword [esp + 0x78]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x78]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x78]
inc dword [esp + 0x14]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x28], 9
mov eax, dword [esp + 0x10]
dec eax
mov dword [esp + 0x28], eax
call fcn.00437de3
lea ecx, [esp + 0x84]
call fcn.00437de3
cmp dword [esp + 0x1c], 0
jne 0x4762ba
cmp dword [esp + 0xac], 0
jle 0x4762ba
mov ecx, dword [esp + 0xb0]
test ecx, ecx
je 0x4762ba
call fcn.0047532c
mov esi, eax
lea eax, [esp + 0x3c]
push eax
mov dword [esp + 0x20], esi
call fcn.00476758
mov dword [eax], esi
mov dword [esp + 0x10], 0xffffffff
xor eax, eax
push 4
mov dword [esp + 0x2c], 0xfc07e17f
mov dword [esp + 0x10], eax
pop esi
jmp 0x4762e8
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x128], 0xc93b4e1
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x4762d5
mov dword [esp + 0x10], eax
jmp 0x476307
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x128], 0x43cdf98a
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x4762f4
mov byte [esp + 0x1b], al
cmp byte [esp + 0x1b], al
je 0x476328
push eax
push 0x13fc
push 0x11e8
call dword [0xabc0a8]
lea ecx, [esp + 0xac]
call fcn.00439c78
mov dword [esp + 8], 0xfb871c7b
xor eax, eax
mov dword [esp + 0x10], 0xe6dabac8
mov dword [esp + 0xc], eax
jmp 0x47635c
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x48], 0xc64a6847
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x47634c
push 3
mov dword [esp + 0xc], eax
pop edx
jmp 0x4764a7
mov dword [esp + 0x14], 7
mov dword [esp + 0x28], 0x15b01d9
mov dword [esp + 0x14], eax
jmp 0x476491
mov dword [esp + 0x24], 0x2848
mov dword [esp + 0xc], eax
jmp 0x4763a8
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x11c], 0x950cfdfe
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x476395
cmp dword [esp + 8], eax
jne 0x4763c0
cmp dword [esp + 0x14], eax
je 0x4763d0
cmp dword [esp + 0x50], eax
je 0x4763ca
mov ecx, dword [esp + 0x14]
cmp dword [esp + ecx*4 + 0x48], eax
jne 0x4763d4
cmp dword [esp + 0x14], eax
jne 0x4763d4
mov esi, eax
jmp 0x4763d6
mov esi, edi
mov ecx, dword [esp + 8]
xor edx, edx
cmp esi, ecx
mov ecx, dword [esp + 8]
push 0
setl dl
cmp ecx, edx
pop ecx
setg cl
xor edx, edx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x14]
push 0
mov ecx, dword [esp + ecx*4 + 0x4c]
cmp ecx, dword [esp + 0x2c]
setne dl
xor ecx, ecx
add edx, 2
cmp edx, 0xffffffff
setne cl
cmp ecx, edi
mov ecx, dword [esp + 0x18]
sbb edx, edx
neg edx
mov ecx, dword [esp + ecx*4 + 0x4c]
cmp edx, ecx
pop ecx
setle cl
xor edx, edx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0x28], ecx
setne dl
cmp edx, dword [esp + 0x24]
jle 0x476442
mov esi, eax
cmp dword [esp + 0x24], eax
je 0x476444
mov esi, edi
mov ecx, dword [esp + 0x14]
push 0
mov edx, dword [esp + ecx*4 + 0x4c]
mov ecx, dword [esp + 0xc]
sub edx, esi
cmp edx, ecx
pop ecx
setl cl
xor edx, edx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0x28], ecx
push 3
setle dl
mov dword [esp + 0x120], edx
mov dword [esp + 0x28], eax
pop edx
jmp 0x476487
mov dword [esp + 0x28], 0xfffffffd
inc dword [esp + 0x24]
cmp dword [esp + 0x24], edx
jle 0x47647b
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jle 0x476387
mov dword [esp + 0x10], 0x5ff57440
inc dword [esp + 8]
cmp dword [esp + 8], edx
jle 0x47636e
mov ecx, dword [esp + 0x54]
mov ecx, dword [esp + 8]
cmp dword [esp + 0x54], eax
jne 0x4764c3
mov ecx, dword [esp + 0x4c]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 8]
cmp edx, ecx
mov ecx, dword [esp + 0x48]
push 0
pop edx
setle dl
add edx, ecx
mov ecx, dword [esp + 0x10]
cmp edx, ecx
push 0
pop ecx
setle cl
neg ecx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
mov esi, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
neg esi
sbb esi, esi
xor edx, edx
neg esi
cmp esi, ecx
mov ecx, dword [esp + 0x1c]
setg dl
mov dword [esp + 0x10], edx
test ecx, ecx
je 0x476540
mov edx, dword [esp + 0x38]
call fcn.00475552
mov esi, eax
lea eax, [esp + 0x58]
push eax
mov dword [esp + 0x94], esi
call fcn.004766f6
mov dword [eax], esi
xor eax, eax
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x10], 0x89328a06
mov dword [esp + 0x20], 0xfffffff6
mov dword [esp + 0xc], 0xcd333563
mov dword [esp + 0x28], 0xfffffff7
mov dword [esp + 0x38], edi
mov dword [esp + 0x2c], 5
mov dword [esp + 0x2c], 0x83d34546
mov dword [esp + 0x34], 0xbc5f2630
mov ecx, dword [esp + 0x1c]
sub ecx, dword [esp + 0x1c]
neg ecx
push 0
sbb ecx, ecx
inc ecx
imul ecx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
cmp ecx, edx
pop ecx
setl cl
cmp ecx, 0xffff
push 0
sbb ecx, ecx
neg ecx
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
cmp edx, ecx
pop ecx
setg cl
sub ecx, dword [esp + 0x1c]
imul ecx, dword [esp + 0x1c]
cmp ecx, 0x939f5fa3
sbb ecx, ecx
neg ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x28], 0xb382e580
mov dword [esp + 0x10], eax
jmp 0x4765f7
cmp dword [esp + 0x28], eax
jne 0x4765fe
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xffffffe4
je 0x4765ed
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
cmp edx, ecx
push 0
pop ecx
setl cl
sub ecx, dword [esp + 0x2c]
mov dword [esp + 0x2c], ecx
je 0x47666c
mov ecx, dword [esp + 0x2c]
xor edx, edx
mov ecx, dword [esp + 0xc]
test ecx, ecx
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x38]
setg dl
sub esi, edx
neg esi
push 0
sbb esi, esi
xor edx, edx
inc esi
sub esi, ecx
mov ecx, dword [esp + 0x30]
cmp esi, ecx
mov ecx, dword [esp + 0x20]
setg dl
cmp edx, ecx
pop ecx
setge cl
xor edx, edx
sub ecx, 0x2f2ee3b6
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0xc]
cmp dword [esp + 0x28], ecx
setle dl
sub edx, dword [esp + 0x2c]
jne 0x47666e
mov edi, eax
mov dword [esp + 0x2c], edi
mov eax, dword [ebp + 8]
lea esi, [esp + 0x90]
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