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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x280
push esi
push edi
mov dword [esp + 0x4c], ecx
lea ecx, [esp + 0x124]
push 4
mov dword [esp + 0x40], edx
call fcn.004373a1
mov dword [esp + 0x28], 0x3267e6aa
lea ecx, [esp + 0x198]
push 3
call fcn.004373a1
xor eax, eax
mov dword [esp + 0x24], 8
mov dword [esp + 8], eax
jmp 0x46ee57
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x124]
mov dword [ecx + edx*4], eax
inc dword [esp + 8]
cmp dword [esp + 8], 4
jl 0x46ee45
push 1
mov dword [esp + 0xc], eax
pop edi
jmp 0x46ee79
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x198]
mov dword [ecx + edx*4], edi
inc dword [esp + 8]
cmp dword [esp + 8], 3
jl 0x46ee67
mov edx, dword [esp + 0x124]
mov ecx, dword [edx + 8]
add ecx, 9
je 0x46ee96
cmp dword [edx + 4], eax
je 0x46ee96
mov eax, edi
mov edx, dword [edx + 4]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x124]
imul ecx, dword [eax]
mov eax, 0xfffb
sub ecx, eax
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, edx
setg al
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x198]
setg cl
mov dword [eax], ecx
lea ecx, [esp + 0x198]
call fcn.00437473
lea ecx, [esp + 0x124]
call fcn.00437473
push 2
lea ecx, [esp + 0xa8]
call fcn.004373a1
xor esi, esi
mov dword [esp + 8], esi
mov dword [esp + 0x1c], esi
jmp 0x46ef16
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xa4]
mov dword [eax + ecx*4], 0x42eb90da
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 2
jl 0x46ef00
mov dword [esp + 8], edi
cmp dword [esp + 8], esi
jl 0x46ef5d
mov edi, dword [esp + 0xa4]
mov eax, dword [esp + 8]
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0xa4]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xa4]
mov eax, dword [eax + ecx*4]
mov dword [edi + 4], eax
dec dword [esp + 8]
jns 0x46ef2e
xor edi, edi
inc edi
lea ecx, [esp + 0xa4]
call fcn.00437473
mov eax, dword [0xab4fa4]
test al, 1
jne 0x46eff0
push esi
or eax, edi
mov dword [0xab4fb0], esi
push esi
mov dword [0xab4fa4], eax
mov dword [0xab4fb4], esi
call fcn.0040428b
mov dword [0xab4fb0], eax
mov ecx, 0xab4fb8
mov dword [esp + 0x110], eax
lea eax, [esp + 0x110]
push eax
push 0x10
push esi
lea eax, [esp + 0x118]
mov dword [0xab4fb8], esi
push eax
mov dword [0xab4fc0], esi
mov dword [0xab4fcc], 0x3f800000
mov dword [0xab4fbc], esi
call fcn.00403fc1
push 0x4b9ea3
mov dword [0xab4fc4], 7
mov dword [0xab4fc8], 8
call fcn.0049614f
pop ecx
mov dword [esp + 0x30], 0xd461e3f
lea ecx, [esp + 0x1bc]
mov dword [esp + 0x38], 0x4c8f0d07
mov dword [esp + 0x10], 3
mov dword [esp + 0x24], 0x184dcc8
mov dword [esp + 0x24], 0x65c2dd7
mov dword [esp + 0x44], esi
mov dword [esp + 0x2c], 0x9cb
mov dword [esp + 0x24], 0xf8169c14
push 2
call fcn.004373a1
push edi
lea ecx, [esp + 0x134]
call fcn.004373a1
or eax, 0xffffffff
mov dword [esp + 0x1d8], eax
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x1e4], eax
xor eax, eax
mov dword [esp + 0x28], 0xffff
mov dword [esp + 0x20], 0x6696
mov dword [esp + 0x18], 0x979d795b
mov dword [esp + 0x14], eax
jmp 0x46f099
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x150], 0xfffffff6
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x46f086
mov dword [esp + 0x14], eax
jmp 0x46f0b6
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x5c], 0xb66febfb
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x46f0a6
mov dword [esp + 0x14], eax
jmp 0x46f0d8
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1bc]
mov dword [ecx + edx*4], 0x4f57
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x46f0c2
mov dword [esp + 0x14], eax
jmp 0x46f0f7
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x130]
mov dword [ecx + edx*4], eax
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x46f0e5
dec dword [esp + 0x28]
jne 0x46f14b
mov ecx, dword [esp + 0x20]
mov esi, 0xddc4ea3c
sub esi, ecx
sub esi, dword [esp + 0x2c]
add esi, dword [esp + 0x30]
imul esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x5c]
neg esi
sbb esi, esi
xor edx, edx
neg esi
cmp esi, ecx
mov ecx, dword [esp + 0x38]
setle dl
mov dword [esp + 0x28], edx
xor edx, edx
cmp dword [esp + 0x28], ecx
mov ecx, 0xfffb
setne dl
cmp ecx, edx
mov edx, eax
sbb ecx, ecx
inc ecx
jne 0x46f14d
mov edx, edi
mov eax, dword [esp + 0x2c]
xor ecx, ecx
cmp eax, edx
setge cl
xor eax, eax
cmp ecx, 0xb704
setle al
cmp eax, dword [esp + 0x10]
je 0x46f16d
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x5c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x130]
mov eax, dword [eax]
mov dword [esp + 0x1e0], eax
mov eax, dword [esp + 0x150]
mov eax, dword [esp + 0x130]
inc dword [eax]
mov eax, dword [esp + 0x150]
mov dword [esp + 0x30], 0xa000286f
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x1bc]
sub ecx, dword [eax]
cmp dword [esp + 0x150], ecx
jl 0x46f1be
mov eax, dword [esp + 0x5c]
mov eax, dword [esp + 0x18]
xor ecx, ecx
cmp eax, edi
setge cl
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x130]
call fcn.00437473
lea ecx, [esp + 0x1bc]
call fcn.00437473
imul eax, dword [esp + 0x4c], 0x2710
add eax, dword [esp + 0x3c]
mov dword [esp + 0x74], eax
xor eax, eax
mov dword [esp + 0x1c], eax
jmp 0x46f210
mov ecx, dword [esp + 0x1c]
mov dword [esp + ecx*4 + 0x1f4], 0xffff
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 3
jl 0x46f1fd
inc dword [esp + 0x1f4]
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], al
je 0x46f230
push eax
push eax
call dword [0xab7010]
lea eax, [esp + 0x74]
push eax
call fcn.004708f4
push dword [esp + 0x10c]
movdqa xmm0, xmmword [0xaada70]
lea ecx, [esp + 0x25c]
push ecx
mov eax, dword [eax]
lea ecx, [esp + 0x250]
mov dword [esp + 0x40], eax
xor eax, eax
push ecx
push eax
lea ecx, [esp + 0xcc]
mov dword [esp + 0xcc], eax
movdqu xmmword [esp + 0x258], xmm0
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
call fcn.004374e4
mov dword [esp + 0x10], edi
lea ecx, [esp + 0x174]
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x2c], 0xc4433ac2
push 3
call fcn.004373a1
xor esi, esi
mov dword [esp + 0x28], 0xb5a27557
mov dword [esp + 0x1c], esi
jmp 0x46f2d4
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x174]
mov dword [eax + ecx*4], 0x67bbda7
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 3
jl 0x46f2be
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x20], eax
mov dword [eax + 8], esi
push 3
lea ecx, [esp + 0xb4]
call fcn.004373a1
xor eax, eax
mov dword [esp + 8], eax
jmp 0x46f315
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0xb0]
mov dword [ecx + edx*4], 0x7a88
inc dword [esp + 8]
cmp dword [esp + 8], 3
jl 0x46f2ff
push 2
mov dword [esp + 0xc], eax
pop esi
jmp 0x46f335
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x6c], 0xfffffff9
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x46f325
mov dword [esp + 0x70], eax
jmp 0x46f35e
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0xb0]
push 0
cmp dword [ecx + edx*4], 0xffffffff
pop ecx
setne cl
mov dword [esp + 0x10], ecx
inc dword [esp + 0x70]
cmp dword [esp + 0x70], esi
jle 0x46f341
cmp dword [esp + 0x10], eax
jne 0x46f3d2
mov dword [esp + 0x10], esi
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0xb0]
xor ecx, ecx
cmp dword [esi + 4], edi
setne cl
xor edx, edx
cmp ecx, 0xfffffffb
setg dl
sub edx, dword [esi + 8]
mov dword [esp + 0x28], edx
mov ecx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp edx, ecx
sbb ecx, ecx
inc ecx
cmp ecx, dword [esi + 4]
setle dl
mov dword [esp + 0x2c], edx
xor edx, edx
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0xb0]
cmp dword [ecx], 0x907c
mov ecx, dword [esp + 0x174]
setne dl
mov dword [ecx], edx
test edx, edx
je 0x46f3d4
mov eax, edi
lea ecx, [esp + 0xb0]
mov dword [esp + 0x28], eax
call fcn.00437473
mov eax, dword [esp + 0x20]
dec dword [eax + 8]
cmp dword [eax + 8], 0xfffffff0
jg 0x46f2e9
lea ecx, [esp + 0x174]
call fcn.00437473
lea ecx, [esp + 0xbc]
call fcn.00437473
mov eax, dword [esp + 0x38]
push edi
test eax, eax
je 0x46f699
mov dword [esp + 0x18], 0xbc9fa8bc
lea ecx, [esp + 0x204]
mov dword [esp + 0x1c], 0x8b012130
xor esi, esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x20], 0xa1c3
mov dword [esp + 0x30], edi
mov dword [esp + 0x24], 0xfffffffc
mov dword [esp + 0x28], 0xb3b3333d
mov dword [esp + 0x28], edi
mov dword [esp + 0x28], 5
mov dword [esp + 0x104], eax
call fcn.004373a1
xor eax, eax
mov dword [esp + 0x28], 0xfffffff6
mov dword [esp + 8], eax
jmp 0x46f48e
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x258], 0xbf48c443
inc dword [esp + 8]
cmp dword [esp + 8], 4
jl 0x46f47b
mov dword [esp + 8], eax
jmp 0x46f4b1
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x200]
mov dword [ecx + edx*4], 0xf8c32619
inc dword [esp + 8]
cmp dword [esp + 8], edi
jl 0x46f49b
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
imul edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
push 0
cmp edx, ecx
mov ecx, dword [esp + 0x18]
pop edx
setle dl
cmp edx, ecx
push 0
pop ecx
setl cl
xor edx, edx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0x3c], ecx
push 0xfffffffffffffff8
setg dl
pop ecx
cmp ecx, edx
push 0
sbb ecx, ecx
inc ecx
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp ecx, edx
pop ecx
setge cl
cmp ecx, 0x3062a4b1
jge 0x46f515
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x18], eax
jne 0x46f52f
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x260], 0xe858
xor edx, edx
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
cmp ecx, 0xd786
setg dl
cmp edx, 0xefe8
jle 0x46f58c
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], al
je 0x46f647
push eax
push 0xe5d
push eax
call dword [0xab73ec]
push eax
call dword [0xab7380]
jmp 0x46f647
mov dword [esp + 0x24], 2
mov dword [esp + 0x3c], 0x1d0ee3b0
mov dword [esp + 8], 0x404179b2
mov dword [esp + 0x18], eax
jmp 0x46f5b9
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x268], eax
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x46f5aa
mov dword [esp + 0x1c], eax
jmp 0x46f68c
mov dword [esp + 0x20], 0x1464
lea ecx, [esp + 0x180]
push edi
call fcn.004373a1
xor eax, eax
mov dword [esp + 0x18], eax
jmp 0x46f5fc
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x180]
mov dword [ecx + edx*4], 0x452e2cc7
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x46f5e6
dec dword [esp + 0x28]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
imul ecx, dword [esp + 0x268], 0x1be3
test ecx, ecx
jne 0x46f62f
cmp dword [esp + 0x2c], eax
je 0x46f658
cmp dword [esp + 0x3c], eax
je 0x46f658
cmp dword [esp + 0x20], eax
je 0x46f67c
lea ecx, [esp + 0x180]
call fcn.00437473
lea ecx, [esp + 0x200]
call fcn.00437473
jmp 0x470870
mov dword [esp + 0x20], 0xffff
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], al
je 0x46f678
push edi
call dword [0xab73ec]
push eax
call dword [0xab7384]
dec dword [esp + 0x20]
lea ecx, [esp + 0x180]
call fcn.00437473
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0x3a
jne 0x46f5c9
jmp 0x46f647
lea ecx, [esp + 0x16c]
call fcn.004373a1
push 2
lea ecx, [esp + 0x1b4]
call fcn.004373a1
xor esi, esi
mov dword [esp + 0x28], 0xfffffff9
mov dword [esp + 8], esi
jmp 0x46f6d9
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x168]
mov dword [eax + ecx*4], 0x665683c8
inc dword [esp + 8]
cmp dword [esp + 8], edi
jl 0x46f6c3
push 2
mov dword [esp + 0xc], esi
pop esi
jmp 0x46f6fe
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x1b0]
mov dword [eax + ecx*4], 0x86ba47c9
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x46f6e8
mov edx, dword [esp + 0x168]
cmp edi, dword [edx]
sbb eax, eax
xor ecx, ecx
neg eax
imul eax, dword [edx]
imul eax, dword [edx]
cmp dword [edx], eax
mov eax, dword [esp + 0x1b0]
sete cl
mov dword [edx], ecx
mov dword [eax], ecx
lea ecx, [esp + 0x1b0]
dec dword [esp + 0x28]
call fcn.00437473
lea ecx, [esp + 0x168]
call fcn.00437473
mov eax, dword [0xab4fa4]
test al, 2
jne 0x46f7d2
or eax, esi
mov dword [0xab4fa4], eax
xor eax, eax
push eax
push eax
mov dword [0xab4fd0], eax
mov dword [0xab4fd4], eax
call fcn.0040428b
mov ecx, eax
mov dword [0xab4fec], 0x3f800000
mov dword [0xab4fd0], ecx
xor eax, eax
mov dword [esp + 0xfc], ecx
lea ecx, [esp + 0xfc]
push ecx
push 0x10
push eax
mov dword [0xab4fd8], eax
mov ecx, 0xab4fd8
mov dword [0xab4fe0], eax
mov dword [0xab4fdc], eax
lea eax, [esp + 0xe8]
push eax
call fcn.00403fc1
push 0x4b9e9e
mov dword [0xab4fe4], 7
mov dword [0xab4fe8], 8
call fcn.0049614f
pop ecx
mov dword [esp + 8], 0x25d16df2
lea ecx, [esp + 0xcc]
mov dword [esp + 0x1c], 0x88a137b1
push esi
call fcn.004373a1
mov dword [esp + 0x24], 0x383de467
mov dword [esp + 0x24], edi
mov dword [esp + 0x24], 0xfffffffa
mov dword [esp + 0x44], 0x1c250287
mov dword [esp + 0x18], 0
jmp 0x46f82b
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xcc]
mov dword [eax + ecx*4], 0xfffffff8
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x46f815
mov eax, dword [esp + 8]
add eax, dword [esp + 8]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x1c], 0
jmp 0x46f9fc
mov dword [esp + 0x10], 0xfffffff9
mov dword [esp + 0x24], 0xa1a8f1ed
mov dword [esp + 0x24], edi
mov dword [esp + 0x38], 0xfffffffd
mov dword [esp + 0x20], 0x1c443818
mov dword [esp + 0x24], edi
mov dword [esp + 0x24], 0x4e5477a7
mov dword [esp + 0x30], 0xc73b0172
mov dword [esp + 0x48], 0x9419
mov dword [esp + 0x18], 0
jmp 0x46f8a3
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0xc8], edi
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x46f894
mov dword [esp + 8], 0
cmp dword [esp + 8], edi
jg 0x46f9f8
mov eax, dword [esp + 0xcc]
xor esi, esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], 0xf3e141b6
lea ecx, [esp + 0x15c]
push 4
call fcn.004373a1
mov dword [esp + 0x24], 0xfa9d
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x18], esi
jmp 0x46f916
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x15c]
mov dword [eax + ecx*4], 0xd437f1bd
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x46f900
cmp dword [esp + 0x10], esi
je 0x46f963
inc dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x28], eax
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0xcc]
mov eax, dword [esp + 0x28]
push 0
cmp dword [ecx + edx*4], eax
mov eax, dword [esp + 0x160]
pop edx
setne dl
xor ecx, ecx
mov dword [eax], edx
mov eax, dword [esp + 0x10]
cmp eax, edx
setl cl
cmp ecx, dword [esp + 0x20]
mov ecx, edi
jne 0x46f965
mov ecx, esi
mov eax, dword [esp + 8]
mov eax, dword [esp + 0x10]
add eax, ecx
xor ecx, ecx
cmp eax, 0xa832
setg cl
xor edx, edx
add ecx, dword [esp + 0x38]
mov eax, dword [esp + 0xc8]
cmp ecx, eax
mov eax, dword [esp + 0x44]
setl dl
xor ecx, ecx
cmp edx, eax
setle cl
xor eax, eax
cmp ecx, 0xfffffffb
setle al
xor edx, edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 8]
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x10]
cmp eax, edi
mov eax, dword [esp + 0xcc]
setge dl
sub edx, dword [eax + ecx*4]
lea ecx, [esp + 0x15c]
mov eax, dword [esp + 0x14]
imul edx, dword [eax + 4]
mov eax, dword [esp + 0x48]
imul eax, edx
mov dword [esp + 0x28], eax
call fcn.00437473
inc dword [esp + 8]
cmp dword [esp + 8], edi
jle 0x46f8c8
dec dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0xfffffff1
jge 0x46f84a
lea ecx, [esp + 0xcc]
call fcn.00437473
xorps xmm0, xmm0
xor esi, esi
movdqu xmmword [esp + 0x114], xmm0
mov dword [esp + 0x1c], 0xdf251d69
mov dword [esp + 0x28], 0x68aa2d34
mov dword [esp + 0x10], 0x92e3
mov dword [esp + 8], 0xffff
mov dword [esp + 0x48], 0x7d437f1b
mov dword [esp + 0x18], esi
jmp 0x46fa5f
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x58], 0xfffa
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x46fa4f
mov eax, dword [esp + 0x58]
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x1c], esi
je 0x46fa77
mov eax, dword [esp + 0x10]
mov dword [esp + 0x28], 0xffffffff
mov eax, dword [esp + 0x58]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
setg dl
sub edx, dword [esp + 0x1c]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
sub edx, dword [esp + 8]
sub edx, dword [esp + 8]
mov eax, dword [esp + 0x10]
add edx, 0x17be
cmp edx, eax
mov eax, dword [esp + 0x1c]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x58]
setne dl
xor ecx, ecx
cmp eax, edx
setle cl
mov dword [esp + 0x1c], ecx
xor ecx, ecx
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 8]
neg edx
cmp edx, eax
lea eax, [esp + 0x4c]
push eax
setg cl
mov dword [esp + 0x4c], ecx
call fcn.00470956
push 4
lea ecx, [esp + 0x1ec]
mov esi, dword [eax]
mov dword [esp + 0x28], edi
mov dword [esp + 0x28], 0xb1cecb45
mov dword [esp + 0x28], 0xfebb6748
mov dword [esp + 0x14], 0xd1e814b7
mov dword [esp + 0x28], 0x843046b6
mov dword [esp + 0x28], 0x52eaa29c
mov dword [esp + 0x2c], esi
call fcn.004373a1
mov dword [esp + 0x24], 0x7d1a
xor eax, eax
mov dword [esp + 0x20], 0x90fc520e
mov dword [esp + 0x18], eax
jmp 0x46fb6d
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1e8]
mov dword [ecx + edx*4], 0xefa42b48
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x46fb57
dec dword [esp + 0x20]
mov dword [esp + 0x10], 3
cmp dword [esp + 0x10], eax
jl 0x46fbb4
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x46fbae
push eax
push 0x8fd
push eax
call dword [0xab73ec]
push eax
call dword [0xab73c4]
push eax
call dword [0xab7070]
xor eax, eax
dec dword [esp + 0x10]
jns 0x46fb86
lea ecx, [esp + 0x1e8]
call fcn.00437473
cmp byte [ebp + 0xc], 0
jne 0x46fbce
test esi, esi
jne 0x4703e7
push 2
lea ecx, [esp + 0x7c]
call fcn.004373a1
mov dword [esp + 8], 0xfffffff9
xor eax, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x1c], 0x540ee1d4
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x38], 0xfffffffb
mov dword [esp + 0x24], 0x1b5e3525
mov dword [esp + 0x18], eax
jmp 0x46fc28
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x78]
mov dword [ecx + edx*4], 0x89b54615
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x46fc15
mov esi, dword [esp + 0x78]
mov dword [esp + 0x10], esi
mov dword [esi + 4], 0xad6f2ee
mov dword [esp + 8], edi
cmp dword [esp + 8], eax
jl 0x46fec5
push dword [esp + 0xdc]
movdqa xmm0, xmmword [0xaada60]
lea ecx, [esp + 0x22c]
push ecx
lea ecx, [esp + 0x220]
mov dword [esp + 0x1c], eax
push ecx
mov dword [esp + 0x24], 0x19d7fcce
lea ecx, [esp + 0xec]
push eax
movdqu xmmword [esp + 0x228], xmm0
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], eax
call fcn.004374e4
mov dword [esp + 0x14], edi
xor eax, eax
cmp dword [esp + 0x14], eax
jl 0x46fcbc
mov dword [esp + 0x44], 2
dec dword [esp + 0x14]
jns 0x46fcae
cmp dword [esi + 4], eax
je 0x46fcd3
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x30], edi
cmp dword [esp + 0x1c], eax
jne 0x46fcd7
mov dword [esp + 0x30], eax
mov esi, dword [esp + 8]
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x44]
push 0
cmp dword [edx + esi*4], ecx
mov ecx, dword [esp + 0x48]
pop edx
setge dl
sub edx, ecx
je 0x46fcfc
mov edx, edi
cmp dword [esp + 0x14], eax
jne 0x46fcfe
mov edx, eax
xor ecx, ecx
cmp edx, 6
mov edx, dword [esp + 0x30]
setl cl
sub edx, ecx
sub edx, 6
neg edx
sbb edx, edx
add edx, 0xfffffff7
cmp edx, 0x8fb6f85a
ja 0x46fd29
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 4], eax
mov ecx, eax
je 0x46fd2b
mov ecx, edi
mov edi, dword [esp + 0x10]
xor edx, edx
mov esi, dword [esp + 8]
push 1
cmp dword [edi + 4], ecx
mov ecx, dword [esp + 0x7c]
setle dl
add edx, dword [ecx + esi*4]
mov esi, edi
pop edi
cmp edx, dword [esi + 4]
jge 0x46fd50
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0x1c], eax
je 0x46fd8a
mov dword [esp + 0x30], edi
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], al
je 0x46fd81
push 0x23c6
push eax
push eax
call dword [0xab706c]
inc dword [esp + 0x30]
jmp 0x46feac
mov dword [esp + 0xec], 0xffffffff
mov dword [esp + 0x40], 0xf230988a
mov dword [esp + 0x30], 0x136b805
mov dword [esp + 0x40], edi
mov dword [esp + 0x48], 0x42f9032b
mov dword [esp + 0x40], eax
mov dword [esp + 0x34], edi
mov dword [esp + 0x34], edi
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
inc dword [esp + 0x38]
cmp ecx, edx
jne 0x46fe28
mov dword [esp + 0x2c], eax
mov edi, dword [esp + 8]
imul edx, dword [esp + 0x2c], 0xf50e
mov ecx, dword [esp + 0x48]
push 0
cmp edx, ecx
mov ecx, dword [esp + 0x18]
pop edx
setle dl
cmp edx, ecx
push 0
pop ecx
setge cl
xor edx, edx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x78]
setle dl
cmp dword [ecx + edi*4], edx
jg 0x46fe13
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 0x18]
xor edi, edi
inc edi
cmp dword [esp + 0x20], 0xffffffff
jbe 0x46fe28
mov ecx, dword [esp + 0xec]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x78]
mov esi, dword [ecx]
mov dword [ecx + edx*4], esi
mov ecx, dword [esp + 0xe0]
mov dword [ecx + 8], esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edi
cmp dword [esp + 0x18], eax
jl 0x46fea8
mov eax, dword [esp + 0x18]
xor edx, edx
mov esi, dword [esp + 8]
mov ecx, dword [esp + 0x78]
mov eax, dword [ecx + eax*4]
cmp eax, dword [ecx + esi*4]
setg dl
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
dec eax
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 8]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], edi
dec dword [esp + 0x18]
jns 0x46fe5d
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0xe0]
call fcn.00437473
dec dword [esp + 8]
push 0
pop eax
jns 0x46fc4c
lea ecx, [esp + 0x78]
call fcn.00437473
mov dl, byte [ebp + 0xc]
lea eax, [esp + 0x278]
mov ecx, dword [esp + 0x4c]
push eax
call fcn.00437714
movdqa xmm0, xmmword [0xaada40]
lea edi, [esp + 0x118]
mov esi, eax
xor eax, eax
pop ecx
push dword [esp + 0x34]
lea ecx, [esp + 0x24c]
mov dword [esp + 0x9c], eax
movsd dword es:[edi], dword [esi]
push ecx
lea ecx, [esp + 0x240]
mov dword [esp + 0xa4], eax
push ecx
movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0xa4]
push eax
movdqu xmmword [esp + 0x248], xmm0
mov dword [esp + 0xb0], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.004374e4
mov dword [esp + 8], 0xf94f378
xor eax, eax
push 3
mov dword [esp + 0x24], 0x3580d416
mov dword [esp + 0x14], eax
pop esi
jmp 0x46ff67
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x18c], 0x583e3585
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x46ff54
mov dword [esp + 8], esi
cmp dword [esp + 8], eax
jl 0x46ffc5
mov dword [esp + 0x10], eax
jmp 0x46ff8d
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x60], 0xcbad86e5
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x46ff7d
mov dword [esp + 0x64], eax
jmp 0x46ffb0
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x98]
mov dword [ecx + edx*4], 0x23af
inc dword [esp + 0x64]
cmp dword [esp + 0x64], 4
jl 0x46ff9a
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x20], ecx
dec dword [esp + 8]
jns 0x46ff77
mov dword [esp + 8], 0x1a
cmp dword [esp + 8], 0xd
jl 0x4700b7
mov edi, dword [esp + 0x98]
push esi
lea ecx, [esp + 0xf4]
call fcn.004373a1
xor eax, eax
mov dword [esp + 0x40], 9
mov dword [esp + 0x10], eax
jmp 0x470012
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xf0]
mov dword [ecx + edx*4], 0xde9829cb
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x46fffc
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0xf0]
neg edx
push 0
sbb edx, edx
inc edx
cmp edx, 0xfffffffa
mov dword [esp + 0x198], edx
pop edx
setne dl
add edx, dword [ecx + 8]
mov ecx, dword [esp + 0x20]
xor ecx, ecx
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0xf0]
xor edx, edx
cmp dword [ecx], eax
setne dl
xor ecx, ecx
cmp edx, dword [edi + 8]
setl cl
cmp ecx, dword [edi + 8]
jne 0x470078
mov ecx, dword [esp + 0x194]
mov dword [esp + 0x194], ecx
jmp 0x470095
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], al
je 0x470095
push 0x256b
push 0x1f19
push eax
call dword [0xab73a4]
xor eax, eax
cmp dword [esp + 0x40], eax
lea ecx, [esp + 0xf0]
call fcn.00437473
dec dword [esp + 8]
cmp dword [esp + 8], 0xd
push 3
pop esi
jge 0x46ffdf
lea ecx, [esp + 0x98]
call fcn.00437473
cmp byte [ebp + 0xc], 0
je 0x4703e4
cmp dword [esp + 0x11c], 0
je 0x4703e4
push 2
pop esi
push esi
lea ecx, [esp + 0x88]
call fcn.004373a1
movdqa xmm0, xmmword [0xaada30]
lea ecx, [esp + 0x238]
mov dword [esp + 0x2c], 0xe022
xor eax, eax
mov dword [esp + 0x30], 0xa6d0
mov dword [esp + 0x20], 0xae7b1b0
mov dword [esp + 8], 0x886a6c65
mov dword [esp + 0x24], 0xc844
mov dword [esp + 0x34], 0xab0b826f
mov dword [esp + 0x34], 0xfffffffc
push dword [esp + 0x34]
movdqu xmmword [esp + 0x22c], xmm0
push ecx
lea ecx, [esp + 0x230]
mov dword [esp + 0x144], eax
push ecx
push eax
lea ecx, [esp + 0x14c]
mov dword [esp + 0x150], eax
mov dword [esp + 0x154], eax
call fcn.004374e4
xor eax, eax
mov dword [esp + 8], eax
jmp 0x47018a
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x84]
mov dword [ecx + edx*4], 7
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x470174
mov dword [esp + 8], eax
jmp 0x4701a9
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x148], 7
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x470196
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x84]
mov dword [ecx], 0x575c
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x20], ecx
cmp dword [esp + 0x20], 4
mov ecx, dword [esp + 0x2c]
sbb edx, edx
neg edx
add edx, 0x204e5063
neg edx
sbb edx, edx
neg edx
imul ecx, edx
mov dword [esp + 8], ecx
cmp dword [esp + 8], 0x6cef
jle 0x470208
mov ecx, dword [esp + 0x84]
cmp dword [ecx], eax
je 0x470208
xor edi, edi
inc edi
mov ecx, edi
jmp 0x47020d
xor edi, edi
mov ecx, eax
inc edi
cmp ecx, dword [esp + 0x30]
jge 0x47028e
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x10], edi
mov dword [esp + 0x40], 0x94ad8a0f
mov dword [esp + 0x34], 0xffffffff
mov dword [esp + 0x34], 0x6bb218ad
mov dword [esp + 0x34], 0x70c0f3ad
mov dword [esp + 0x34], 8
mov dword [esp + 0x34], 0x91930e88
mov dword [esp + 0x38], 0x208dd2dc
cmp dword [ecx + 4], eax
je 0x470261
cmp dword [esp + 0x10], eax
jne 0x470275
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 8]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x40], eax
dec dword [esp + 0x38]
jmp 0x4703a7
mov dword [esp + 0x24], 0x24b34d7a
mov dword [esp + 0x34], 0x3f3a8a1d
mov dword [esp + 0x34], 0xa312446b
mov dword [esp + 0x10], eax
jmp 0x4702b8
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x68], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x4702ac
mov dword [esp + 8], eax
cmp dword [esp + 8], edi
jg 0x47038f
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x34], 0xce5f1497
lea ecx, [esp + 0x20c]
mov dword [esp + 0x34], eax
push 3
call fcn.004373a1
xor esi, esi
mov dword [esp + 0x20], 0xfffffffb
mov dword [esp + 0x10], esi
jmp 0x470317
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x20c]
mov dword [eax + ecx*4], 0xb9878ff5
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x470301
mov eax, dword [esp + 8]
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x84]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
xor ecx, ecx
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
dec dword [esp + 0x20]
mov eax, dword [esp + 0x68]
mov eax, dword [esp + 0x30]
cmp eax, 0x7a66
setge cl
sub ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x68]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
add ecx, eax
mov eax, dword [esp + 0x68]
cmp ecx, eax
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0x20c]
setg dl
mov dword [eax + 4], edx
call fcn.00437473
inc dword [esp + 8]
push 0
pop eax
cmp dword [esp + 8], edi
jle 0x4702d7
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4703a7
push eax
push 0x1750
push eax
call dword [0xab72b8]
inc dword [esp + 0x14c]
lea ecx, [esp + 0x13c]
call fcn.00437473
lea ecx, [esp + 0x84]
call fcn.00437473
mov eax, dword [esp + 0x120]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x108], eax
jmp 0x4703e7
xor edi, edi
inc edi
push 0xfffffffffffffffa
pop eax
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x1d4], eax
xor eax, eax
mov dword [esp + 0x10], eax
jmp 0x47041e
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x50], 0x7a00f47a
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x47040e
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], al
je 0x470443
push 0x1970
push eax
push eax
push 0x1eb0
call dword [0xab73e8]
xor eax, eax
cmp dword [esp + 0x50], eax
je 0x47045b
cmp dword [esp + 0x54], eax
jne 0x470455
cmp dword [esp + 0x50], eax
je 0x47045b
mov dword [esp + 0x20], edi
jmp 0x47045f
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x50]
cmp edx, ecx
mov ecx, dword [esp + 0x50]
push 0
pop edx
setne dl
sub edx, ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x24], edx
xor edx, edx
cmp dword [esp + 0x24], ecx
setle dl
add edx, dword [esp + 0x20]
je 0x470494
mov edx, edi
cmp dword [esp + 0x50], eax
jne 0x470496
mov edx, eax
mov ecx, dword [esp + 0x50]
add edx, edx
cmp edx, ecx
push 0
pop ecx
setg cl
cmp dword [esp + 0x28], 0
mov dword [esp + 0x1c8], ecx
jne 0x4704e0
cmp dword [esp + 0x114], 0
jle 0x4704e0
mov ecx, dword [esp + 0x118]
test ecx, ecx
je 0x4704e0
call fcn.0046ea2c
mov esi, eax
lea eax, [esp + 0x4c]
push eax
mov dword [esp + 0x2c], esi
call fcn.00470956
mov dword [eax], esi
xor eax, eax
mov dword [esp + 0x14], 0xfffffffc
mov dword [esp + 8], 0xe6aa1654
mov dword [esp + 0x20], edi
mov dword [esp + 0x14], 0x13
jmp 0x470516
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x470512
push eax
call dword [0xab7068]
xor eax, eax
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xfffffff7
je 0x4704fe
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
mov ecx, dword [esp + 8]
neg edx
push 0
sbb edx, edx
neg edx
mov dword [esp + 0x24], edx
xor edx, edx
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
cmp ecx, edi
mov ecx, dword [esp + 0xc]
setle dl
cmp edx, ecx
pop ecx
setg cl
xor edx, edx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x14]
cmp ecx, dword [esp + 0x24]
setge dl
cmp edx, dword [esp + 8]
jle 0x47057f
cmp dword [esp + 0x20], eax
je 0x470581
mov eax, edi
mov dword [esp + 8], eax
lea ecx, [esp + 0x114]
call fcn.00438c58
mov dword [esp + 8], 0xffffffff
xor eax, eax
mov dword [esp + 0x14], 0xc2e7ccc8
mov dword [esp + 0x10], eax
jmp 0x4705bc
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x90], 0x5551
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x4705a9
mov ecx, dword [esp + 8]
mov edx, edi
mov ecx, dword [esp + 8]
sub edx, ecx
mov ecx, dword [esp + 8]
cmp edx, ecx
mov ecx, dword [esp + 8]
push 0
pop edx
setle dl
sub ecx, edx
cmp ecx, dword [esp + 8]
jle 0x4705ef
mov esi, edi
cmp dword [esp + 0x14], eax
jne 0x4705f1
mov esi, eax
mov ecx, dword [esp + 0x14]
xor edx, edx
cmp esi, ecx
mov ecx, 0xfffd
sete dl
cmp ecx, edx
sbb ecx, ecx
inc ecx
add ecx, dword [esp + 0x14]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 8], ecx
je 0x470676
mov dword [esp + 8], edi
cmp dword [esp + 8], eax
jl 0x470721
xor esi, esi
push 4
lea ecx, [esp + 0x1a8]
call fcn.004373a1
mov dword [esp + 0x10], esi
jmp 0x47064f
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1a4]
mov dword [eax + ecx*4], 3
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x470639
mov eax, dword [esp + 0x1a4]
lea ecx, [esp + 0x1a4]
dec dword [eax]
call fcn.00437473
dec dword [esp + 8]
jns 0x470625
jmp 0x470721
mov dword [esp + 0x20], 0xafd77ccc
mov dword [esp + 8], edi
cmp dword [esp + 8], eax
jl 0x470721
mov dword [esp + 0x14], eax
jmp 0x4706e4
mov dword [esp + 0x24], 0xe4f2007
mov ecx, dword [esp + 8]
cmp dword [esp + ecx*4 + 0x90], eax
jne 0x4706b3
mov ecx, dword [esp + 0x20]
mov ecx, eax
cmp dword [esp + 0x20], edi
jl 0x4706b5
mov ecx, edi
mov dword [esp + 0x24], ecx
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x4706e0
push 0x53b
push 0xb4a
call dword [0xab73ec]
push eax
xor esi, esi
push esi
call dword [0xab738c]
xor eax, eax
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jle 0x470692
mov dword [esp + 0x14], eax
jmp 0x470711
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x47070d
push 0x23fe
push 0xf40
call dword [0xab7408]
xor eax, eax
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jle 0x4706f0
dec dword [esp + 8]
jns 0x47068c
xor eax, eax
mov dword [esp + 8], eax
jmp 0x470780
mov dword [esp + 0x2c], 0xae7a4860
mov dword [esp + 0x24], edi
mov dword [esp + 0x14], eax
jmp 0x470776
mov ecx, dword [esp + 0x14]
cmp dword [esp + ecx*4 + 0x90], eax
jne 0x47077c
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + ecx*4 + 0x90]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + ecx*4 + 0x90]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x24], edi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jle 0x47073b
inc dword [esp + 8]
cmp dword [esp + 8], 0x1a
jne 0x470729
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4707af
mov edx, dword [esp + 0x3c]
call fcn.0046ec82
mov esi, eax
lea eax, [esp + 0x74]
push eax
mov dword [esp + 0x104], esi
call fcn.004708f4
mov dword [eax], esi
xor eax, eax
mov dword [esp + 0x18], 0x999d94b4
mov dword [esp + 0x28], 0xc25b
mov dword [esp + 0x3c], 0xd4a55f07
mov dword [esp + 0x3c], 0xfffffffb
mov dword [esp + 0x24], 0xb80ebbd4
mov dword [esp + 0x10], eax
jmp 0x4707f0
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0xd8], 0xe56890c5
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x4707dd
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], 0
je 0x470813
push eax
push 0x184f
push eax
push eax
push eax
push eax
call dword [0xab7210]
xor eax, eax
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xd8], ecx
mov dword [esp + 0x3c], ecx
imul ecx, dword [esp + 0x3c], 0xee76
mov edx, dword [esp + 0x18]
sub edx, ecx
sub edx, dword [esp + 0x18]
sub edx, dword [esp + 0x18]
neg edx
sbb edx, edx
neg edx
mov dword [esp + 0x3c], edx
cmp dword [esp + 0x3c], eax
je 0x470852
cmp dword [esp + 0x28], eax
jne 0x470854
mov edi, eax
mov eax, dword [esp + 0x18]
neg edi
neg edi
sbb edi, edi
xor ecx, ecx
neg edi
cmp edi, eax
setg cl
imul ecx, dword [esp + 0x28]
mov dword [esp + 0x24], ecx
mov eax, dword [ebp + 8]
lea esi, [esp + 0x100]
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