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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x248
and dword [esp + 0x2c], 0
push esi
push edi
push 0xfffffffffffffffc
mov dword [esp + 0x54], ecx
xor edi, edi
pop esi
mov dword [esp + 0x24], esi
lea ecx, [esp + 0x144]
inc edi
mov dword [esp + 0x4c], edx
mov dword [esp + 0x28], edi
mov dword [esp + 0xc], 5
push 3
call fcn.004016e3
xor eax, eax
mov dword [esp + 0x10], eax
jmp 0x45e951
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x40], 0x20a2
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x45e941
mov dword [esp + 0x10], eax
jmp 0x45e96c
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x19c], esi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x45e95d
push 3
mov dword [esp + 0x14], eax
pop esi
jmp 0x45e992
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x144]
mov dword [ecx + edx*4], 7
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x45e97c
mov ecx, dword [esp + 0x40]
cmp dword [esp + 0x40], eax
je 0x45e9ce
mov ecx, dword [esp + 0x40]
xor edx, edx
mov ecx, dword [esp + 0x40]
mov ecx, dword [esp + 0x24]
cmp ecx, edi
mov ecx, dword [esp + 0x24]
setg dl
mov dword [esp + 0x2c], edx
xor edx, edx
cmp dword [esp + 0x2c], ecx
mov ecx, edi
setne dl
cmp edx, dword [esp + 0x40]
jl 0x45e9d0
mov ecx, eax
cmp ecx, dword [esp + 0x40]
jle 0x45e9de
mov edx, eax
cmp dword [esp + 0x40], eax
je 0x45e9e0
mov edx, edi
xor ecx, ecx
cmp edx, 0xfffffffb
setg cl
add ecx, 6
jne 0x45e9f5
mov ecx, eax
cmp dword [esp + 0x40], eax
je 0x45e9f7
mov ecx, edi
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x24]
imul eax, ecx
lea ecx, [esp + 0x144]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x1a4]
mov eax, dword [esp + 0x144]
or dword [eax], 0xffffffff
call fcn.004017b5
mov eax, dword [0xa62788]
test al, 1
jne 0x45eadf
or eax, edi
mov dword [0xa62788], eax
xor eax, eax
push eax
push eax
mov dword [0xa627b0], eax
mov dword [0xa627b4], eax
call fcn.0042274c
mov ecx, eax
mov dword [0xa627cc], 0x3f800000
mov dword [0xa627b0], ecx
xor eax, eax
mov dword [esp + 0xa4], ecx
lea ecx, [esp + 0xa4]
push ecx
push 0x10
push eax
mov dword [0xa627b8], eax
mov ecx, 0xa627b8
mov dword [0xa627c0], eax
mov dword [0xa627bc], eax
lea eax, [esp + 0x1bc]
push eax
call fcn.004224f1
push 0x46e000
mov dword [0xa627c4], 7
mov dword [0xa627c8], 8
call fcn.00461b9f
pop ecx
mov dword [esp + 0xc], 0xdae8c9f3
lea ecx, [esp + 0xc0]
push 4
call fcn.004016e3
mov dword [esp + 0x24], 0xa20bd035
xor eax, eax
mov dword [esp + 0x28], 5
mov dword [esp + 0x20], 0xffff
mov dword [esp + 0x1c], 0x9132f4bb
mov dword [esp + 0x2c], 0x34605dd8
mov dword [esp + 0x10], eax
jmp 0x45eb3b
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc0]
mov dword [ecx + edx*4], 0xfffffffb
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x45eb25
mov dword [esp + 0x10], eax
jmp 0x45eb5b
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x1a8], 0xbc775623
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x45eb48
mov dword [esp + 0x10], eax
jmp 0x45eb77
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0xcc], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x45eb68
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0xc0]
mov dword [esi + 0xc], ecx
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x24], eax
jne 0x45ec7f
mov ecx, dword [esp + 0xc0]
cmp dword [ecx], eax
je 0x45ebc8
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
xor ecx, ecx
cmp dword [esi + 0xc], 0xfffffffc
setl cl
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x28], 0xffffffff
jg 0x45ebc8
cmp dword [esp + 0xc], eax
je 0x45ebc8
mov eax, edi
xor ecx, ecx
cmp eax, dword [esi + 0xc]
setge cl
xor eax, eax
cmp ecx, 0x1cd25bb5
setle al
xor ecx, ecx
mov dword [esp + 0x1a8], eax
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
cmp eax, 0x7220b73
setl cl
xor eax, eax
add ecx, dword [esi + 0xc]
cmp ecx, 0x117a540f
mov ecx, dword [esi + 0xc]
setle al
xor edx, edx
cmp eax, 0x78b72129
mov eax, dword [esp + 0xc]
setl dl
imul eax, edx
xor edx, edx
add eax, ecx
cmp eax, ecx
mov eax, dword [esp + 0xc0]
setl dl
xor ecx, ecx
add edx, 9
cmp edx, 0x8d92
setg cl
xor edx, edx
sub ecx, dword [eax]
mov eax, dword [esp + 0xd4]
add ecx, eax
mov eax, dword [esp + 0xd0]
cmp ecx, eax
mov eax, dword [esp + 0xcc]
mov dword [esi + 0xc], ecx
sete dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x20]
setg cl
mov dword [esp + 0x2c], ecx
xor ecx, ecx
cmp dword [esp + 0x2c], eax
setne cl
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xcc]
xor edx, edx
mov eax, dword [esp + 0x1c]
cmp eax, ecx
lea ecx, [esp + 0xc0]
setg dl
mov dword [esp + 0x2c], edx
call fcn.004017b5
imul eax, dword [esp + 0x50], 0x2710
add eax, dword [esp + 0x4c]
mov dword [esp + 0x5c], eax
mov dword [esp + 0xc], 0xfffffffe
mov dword [esp + 0x24], 8
mov dword [esp + 0x34], 0x8884515f
mov dword [esp + 0x38], 0xe974a520
mov dword [esp + 0x30], 7
mov dword [esp + 0x34], 0x32883e73
mov dword [esp + 0x10], 0xec51
mov dword [esp + 0xc], 0xa
cmp dword [esp + 0xc], 2
jne 0x45edf1
xor eax, eax
mov dword [esp + 0x1c], 0xfffffff6
mov dword [esp + 0x2c], 0xfffffffa
mov dword [esp + 0x20], 0xfffffffa
mov dword [esp + 0x28], 0xfffffff8
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], 0xffff
mov dword [esp + 0x24], eax
jmp 0x45ed43
mov ecx, dword [esp + 0x24]
mov dword [esp + ecx*4 + 0x1f0], 0x20985a95
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 3
jl 0x45ed30
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0xc], eax
je 0x45ed5c
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
xor edx, edx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x24], eax
mov esi, dword [esp + 0x24]
mov dword [esp + 0x1f0], esi
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x38]
cmp ecx, 0x3388
push 0
setge dl
sub edx, dword [esp + 0x2c]
add edx, dword [esp + 0x10]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
cmp edx, ecx
pop ecx
setne cl
xor edx, edx
cmp esi, ecx
mov ecx, dword [esp + 0x1c]
push 0
setle dl
mov dword [esp + 0x30], edx
xor edx, edx
cmp dword [esp + 0x30], ecx
setge dl
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x34]
cmp ecx, edx
pop ecx
setl cl
mov dword [esp + 0x24], ecx
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 2
je 0x45ecfe
inc dword [esp + 0x10]
lea eax, [esp + 0x5c]
push eax
call fcn.004609bc
push 2
lea ecx, [esp + 0xf4]
mov esi, dword [eax]
mov dword [esp + 0x34], esi
call fcn.004016e3
xor eax, eax
mov dword [esp + 0x1c], 0x9beb0647
mov dword [esp + 0x24], eax
jmp 0x45ee39
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0xf0]
mov dword [ecx + edx*4], 0xbca63185
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 2
jl 0x45ee23
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x1c], edi
jg 0x45eec8
mov dword [esp + 0xc], 0xdb8faaae
cmp dword [esp + 0xc], eax
jne 0x45eec4
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x1c]
neg esi
sbb esi, esi
xor edx, edx
neg esi
cmp esi, ecx
setl dl
cmp edx, 4
jb 0x45ee7a
mov edx, eax
cmp dword [esp + 0x1c], eax
je 0x45ee7c
mov edx, edi
mov ecx, dword [esp + 0xf0]
mov esi, dword [ecx + 4]
sub esi, edx
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0xf0]
mov dword [ecx + edx*4], esi
xor edx, edx
mov ecx, dword [esp + 0xc]
imul ecx, dword [esp + 0x1c], 0xf58a
cmp ecx, 0x9507
setl dl
sub edx, dword [esp + 0xc]
neg edx
sbb edx, edx
inc edx
mov dword [esp + 0xc], edx
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edi
jle 0x45ee4a
mov esi, dword [esp + 0x30]
lea ecx, [esp + 0xf0]
call fcn.004017b5
test esi, esi
je 0x45f05d
mov dword [esp + 0x30], 0x7dfa860b
lea ecx, [esp + 0x1d4]
mov dword [esp + 0x38], 0x71c7bf0b
push 2
call fcn.004016e3
mov dword [esp + 0x24], 0
jmp 0x45ef1a
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x1d4]
mov dword [eax + ecx*4], 7
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 2
jl 0x45ef04
mov byte [esp + 0x17], 0
cmp byte [esp + 0x17], 0
je 0x45ef33
call dword [0xa640f8]
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x1d4]
mov dword [esp + 0x38], eax
call fcn.004017b5
mov dword [esp + 0x24], 8
xor eax, eax
mov dword [esp + 0x34], edi
mov dword [esp + 0x34], 0xfffffff6
mov dword [esp + 0x34], 0x1220985a
mov dword [esp + 0x34], 0xee41b66b
mov dword [esp + 0x34], 0xb090aec5
mov dword [esp + 0x94], esi
mov dword [esp + 0x24], eax
jmp 0x45ef91
mov ecx, dword [esp + 0x24]
mov dword [esp + ecx*4 + 0x208], eax
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 2
jl 0x45ef82
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], al
je 0x45efaf
push eax
push 0x73
push eax
push eax
call dword [0xa6410c]
xor eax, eax
mov dword [esp + 0x24], eax
cmp dword [esp + 0x24], eax
jne 0x4608f0
push 3
lea ecx, [esp + 0x1c0]
call fcn.004016e3
mov dword [esp + 0x34], 0
lea ecx, [esp + 0x15c]
push edi
call fcn.004016e3
mov dword [esp + 0x28], 0xfffffffc
mov dword [esp + 0x10], 0
jmp 0x45f005
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1bc]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x45eff2
mov dword [esp + 0x10], 0
jmp 0x45f02c
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x15c]
mov dword [eax + ecx*4], 0x1b17d72b
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x45f016
dec dword [esp + 0x28]
lea ecx, [esp + 0x15c]
call fcn.004017b5
lea ecx, [esp + 0x1bc]
call fcn.004017b5
inc dword [esp + 0x24]
je 0x45efbd
jmp 0x4608f0
push 0xfffffffffffffffc
pop esi
mov dword [esp + 0x24], esi
lea ecx, [esp + 0x12c]
mov dword [esp + 0x28], edi
mov dword [esp + 0xc], 5
push 3
call fcn.004016e3
xor eax, eax
mov dword [esp + 0x10], eax
jmp 0x45f096
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x3c], 0x20a2
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x45f086
mov dword [esp + 0x10], eax
jmp 0x45f0b1
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x184], esi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x45f0a2
mov dword [esp + 0x10], eax
jmp 0x45f0d4
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x12c]
mov dword [ecx + edx*4], 7
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x45f0be
mov ecx, dword [esp + 0x3c]
cmp dword [esp + 0x3c], eax
je 0x45f111
mov ecx, dword [esp + 0x3c]
xor edx, edx
mov ecx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x24]
cmp ecx, edi
mov ecx, dword [esp + 0x24]
setg dl
mov dword [esp + 0x30], edx
xor edx, edx
cmp dword [esp + 0x30], ecx
mov ecx, edi
setne dl
cmp edx, dword [esp + 0x3c]
jl 0x45f113
mov ecx, eax
cmp ecx, dword [esp + 0x3c]
jle 0x45f121
mov edx, eax
cmp dword [esp + 0x3c], eax
je 0x45f123
mov edx, edi
xor ecx, ecx
cmp edx, 0xfffffffb
setg cl
add ecx, 6
jne 0x45f138
mov ecx, eax
cmp dword [esp + 0x3c], eax
je 0x45f13a
mov ecx, edi
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x24]
imul eax, ecx
lea ecx, [esp + 0x12c]
mov dword [esp + 0x188], eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x18c]
mov eax, dword [esp + 0x12c]
or dword [eax], 0xffffffff
call fcn.004017b5
mov eax, dword [0xa62788]
test al, 2
jne 0x45f223
or eax, 2
mov dword [0xa62788], eax
xor eax, eax
push eax
push eax
mov dword [0xa62790], eax
mov dword [0xa62794], eax
call fcn.0042274c
mov ecx, eax
mov dword [0xa627ac], 0x3f800000
mov dword [0xa62790], ecx
xor eax, eax
mov dword [esp + 0xa0], ecx
lea ecx, [esp + 0xa0]
push ecx
push 0x10
push eax
mov dword [0xa62798], eax
mov ecx, 0xa62798
mov dword [0xa627a0], eax
mov dword [0xa6279c], eax
lea eax, [esp + 0x180]
push eax
call fcn.004224f1
push 0x46dffb
mov dword [0xa627a4], 7
mov dword [0xa627a8], 8
call fcn.00461b9f
pop ecx
mov dword [esp + 0x10], 0
lea ecx, [esp + 0x78]
push 2
call fcn.004016e3
xor eax, eax
mov dword [esp + 0x24], eax
jmp 0x45f251
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x78]
mov dword [ecx + edx*4], 0x871d976f
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 2
jl 0x45f23e
mov dword [esp + 0x10], eax
jmp 0x45f268
cmp dword [esp + 0x10], eax
jne 0x45f26f
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xffffffe2
jg 0x45f25e
mov dword [esp + 0x10], eax
jmp 0x45f30c
mov dword [esp + 0x1c], 0x67e307b5
mov dword [esp + 0x1c], edi
cmp dword [esp + 0x1c], eax
jl 0x45f308
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x1c], eax
jle 0x45f2a7
mov edx, dword [esp + 0x1c]
mov esi, edi
mov ecx, dword [esp + 0x78]
cmp dword [ecx + edx*4], eax
jne 0x45f2a9
mov esi, eax
mov edx, dword [esp + 0x1c]
xor edi, edi
mov ecx, dword [esp + 0x78]
cmp edi, dword [ecx + edx*4]
sbb ecx, ecx
neg ecx
sub ecx, esi
neg ecx
sbb ecx, ecx
inc ecx
inc edi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x20], eax
jmp 0x45f2fc
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0xc], eax
jmp 0x45f2ed
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x78]
mov dword [ecx + edx*4], 0xb5c29478
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x45f2da
mov ecx, dword [esp + 0x1c]
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edi
jle 0x45f2cc
dec dword [esp + 0x1c]
jns 0x45f28a
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jle 0x45f278
lea ecx, [esp + 0x78]
call fcn.004017b5
xorps xmm0, xmm0
xor eax, eax
movdqu xmmword [esp + 0xb0], xmm0
mov dword [esp + 0x24], 4
mov dword [esp + 0x24], eax
jmp 0x45f34d
mov dword [esp + 0x30], 0xffffffff
cmp dword [esp + 0x30], eax
jne 0x45f354
dec dword [esp + 0x24]
cmp dword [esp + 0x24], 0xfffffff0
jg 0x45f33b
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], al
je 0x45f375
push 0x1d34
push 0x1cea
call dword [0xa6422c]
push eax
call dword [0xa64230]
lea eax, [esp + 0x50]
push eax
call fcn.00460a1e
push 4
lea ecx, [esp + 0x194]
mov esi, dword [eax]
mov dword [esp + 0x10], 0xb505
mov dword [esp + 0x20], 0xfffffffb
mov dword [esp + 0x14], 0xfc558bac
mov dword [esp + 0x30], 5
mov dword [esp + 0x38], 0xdb821342
mov dword [esp + 0x2c], 0x1ce3
mov dword [esp + 0x38], edi
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x38], 0xca3691f6
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 9
mov dword [esp + 0x28], esi
call fcn.004016e3
mov dword [esp + 0x20], 0xc9ba5b04
mov dword [esp + 0xc], 0
jmp 0x45f40f
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x190]
mov dword [eax + ecx*4], 0xc40a98ce
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x45f3f9
mov dword [esp + 0xc], 0x8d327cb3
xor ecx, ecx
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
cmp eax, 0x4c38
setl cl
cmp ecx, 0xfffffffd
jne 0x45f445
mov eax, dword [esp + 0x1c]
inc dword [esp + 0x20]
xor edx, edx
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0xc]
add eax, 0x7ba2e7b3
add ecx, eax
imul ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
cmp ecx, eax
mov eax, dword [esp + 0xc]
setge dl
xor ecx, ecx
cmp edx, edi
setge cl
xor edx, edx
cmp eax, ecx
mov eax, dword [esp + 0x1c]
setge dl
xor ecx, ecx
cmp edx, eax
setl cl
imul ecx, dword [esp + 0x2c]
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x190]
call fcn.004017b5
mov al, byte [ebp + 0xc]
test al, al
jne 0x45f4c9
test esi, esi
jne 0x45f934
lea ecx, [esp + 0x230]
mov dl, al
push ecx
mov ecx, dword [esp + 0x54]
call fcn.0044ef8d
cmp byte [ebp + 0xc], 0
lea edi, [esp + 0xb4]
mov esi, 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]
je 0x45f92d
cmp dword [esp + 0xb8], 0
je 0x45f92d
mov dword [esp + 0x10], 0xa53d06ce
lea ecx, [esp + 0x168]
mov dword [esp + 0x1c], 0
mov dword [esp + 0xc], 0xffffffff
push 2
call fcn.004016e3
xor eax, eax
mov dword [esp + 0x10], eax
jmp 0x45f540
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x6c], 0xf251d69f
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x45f530
mov dword [esp + 0x10], eax
jmp 0x45f563
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x168]
mov dword [ecx + edx*4], 0x337b27f9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x45f54d
dec dword [esp + 0x1c]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x10], 0x8932
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
cmp edx, ecx
push 0
pop edx
setl dl
xor ecx, ecx
cmp edx, 0xcbe9
setg cl
xor edx, edx
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, 0xffffffff
mov ecx, dword [esp + 0x1c]
setge dl
mov dword [esp + 0x30], edx
xor edx, edx
cmp dword [esp + 0x30], ecx
setge dl
imul edx, dword [esp + 0x1c]
cmp edx, dword [esp + 0x1c]
jg 0x45f7d6
mov dword [esp + 0x20], 0x7a75
xor edi, edi
mov dword [esp + 0x30], eax
inc edi
mov dword [esp + 0x10], 0xffffffee
jmp 0x45f7c9
mov dword [esp + 0xc], 0xadeb9459
mov ecx, dword [esp + 0x10]
sub ecx, 0x3e2be8ca
neg ecx
sbb ecx, ecx
sub ecx, 7
add ecx, dword [esp + 0x1c]
neg ecx
sbb ecx, ecx
add ecx, 0xa903
cmp ecx, dword [esp + 0xc]
jle 0x45f627
mov ecx, eax
cmp dword [esp + 0x20], eax
je 0x45f629
mov ecx, edi
mov edx, dword [esp + 0x20]
imul edx, ecx
mov ecx, dword [esp + 0x1c]
push 0
cmp edx, ecx
pop ecx
setne cl
sub ecx, dword [esp + 0x20]
je 0x45f64a
mov esi, edi
cmp dword [esp + 0xc], eax
jne 0x45f64c
mov esi, eax
mov dword [esp + 0x6c], esi
xor edx, edx
mov ecx, dword [esp + 0x20]
cmp esi, ecx
push 0
setg dl
imul edx, dword [esp + 0x14]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
cmp edx, ecx
pop ecx
setge cl
sub ecx, dword [esp + 0x30]
sub ecx, dword [esp + 0x20]
imul edx, ecx, 0xd1cd
mov ecx, dword [esp + 0x10]
push 0
cmp edx, ecx
pop ecx
setne cl
xor edx, edx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x20]
cmp dword [esp + 0x30], ecx
setg dl
sub edx, dword [esp + 0x20]
mov dword [esp + 0xc], edx
mov dword [esp + 0xc], 0xfffffff9
jmp 0x45f7ba
mov dword [esp + 0x28], 0x45464cd0
mov dword [esp + 0x18], eax
jmp 0x45f6d5
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x1b4], 0xffffffff
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x45f6c2
mov dword [esp + 0x18], eax
jmp 0x45f6f5
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0xac], 0x717f6c07
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x45f6e2
mov ecx, dword [esp + 0x28]
cmp dword [esp + 0x70], eax
je 0x45f732
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x28], 0xe7ce488d
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x1b8]
neg edx
sbb edx, edx
neg edx
imul ecx, edx
dec ecx
jne 0x45f72e
cmp dword [esp + 0x20], eax
je 0x45f732
mov esi, edi
jmp 0x45f734
mov esi, eax
mov ecx, dword [esp + 0xac]
xor edx, edx
cmp esi, ecx
mov ecx, dword [esp + 0xc]
setg dl
mov dword [esp + 0x30], edx
xor edx, edx
cmp dword [esp + 0x30], ecx
setle dl
sub edx, dword [esp + 0x20]
mov dword [esp + 0x30], edx
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x45f7b6
mov esi, dword [0xa6422c]
push 0x21f0
push 0xac9
push 0x15e3
push eax
push 0xc49
push 0x6fc
call esi
push eax
call dword [0xa64200]
push eax
push 0x13a3
push 0x171
push 0x18e4
push 0x1fb8
call esi
push eax
call dword [0xa64200]
push eax
call dword [0xa64010]
xor eax, eax
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xffffffea
jl 0x45f6b4
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xffffffe5
je 0x45f5f2
jmp 0x45f814
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], 0xffffffef
jg 0x45f811
cmp dword [esp + 0x6c], eax
jne 0x45f811
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x45f80b
push 0x1d34
push 0x1cea
call dword [0xa6422c]
push eax
call dword [0xa64230]
xor eax, eax
dec dword [esp + 0xc]
jmp 0x45f7da
xor edi, edi
inc edi
lea ecx, [esp + 0x168]
call fcn.004017b5
mov eax, dword [esp + 0xbc]
lea ecx, [esp + 0xe4]
push 4
mov dword [esp + 0x9c], eax
call fcn.004016e3
mov dword [esp + 0x28], 5
xor eax, eax
mov dword [esp + 0x28], 0x7f4ea14c
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], 0x7276cc72
mov dword [esp + 0x18], eax
jmp 0x45f873
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0xe4]
or dword [ecx + edx*4], 0xffffffff
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x45f860
mov dword [esp + 0x18], eax
jmp 0x45f893
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0xa8], 0x8142c78e
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x45f880
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], al
je 0x45f8b1
push eax
call dword [0xa6422c]
push eax
call dword [0xa641bc]
mov edi, dword [esp + 0xe4]
xor edx, edx
mov eax, dword [edi]
sub eax, dword [edi + 0xc]
imul eax, dword [edi + 4]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x28], 0xffffffff
mov eax, dword [esp + 0x28]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0xe4]
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x28]
cmp eax, dword [esi + 8]
mov eax, dword [edi + 0xc]
setg dl
add ecx, 0x2737ae9f
add eax, ecx
xor ecx, ecx
cmp edx, eax
setle cl
add ecx, dword [esi + 8]
mov dword [esp + 0xa8], ecx
lea ecx, [esp + 0xe4]
call fcn.004017b5
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x9c], eax
mov esi, dword [esp + 0x24]
xor edi, edi
inc edi
mov dword [esp + 0x34], edi
xor eax, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x34], 0x34fda0e6
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], 0xfffffffa
mov dword [esp + 0x34], 0x708ef6b8
mov dword [esp + 0x34], edi
mov dword [esp + 0x34], 0xffffffff
mov dword [esp + 0x34], 0x729cf308
mov dword [esp + 0x34], 0x1dfd9475
mov dword [esp + 0x34], 0xefb6f65e
mov dword [esp + 0x34], 0x4896e6a3
mov dword [esp + 0x34], 0xd188047d
mov dword [esp + 0x34], eax
mov dword [esp + 0x34], 0x3589
mov dword [esp + 0x2c], 7
mov dword [esp + 0x30], eax
mov dword [esp + 0xc], eax
jmp 0x45f9bb
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x240], edi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x45f9ac
dec dword [esp + 0x2c]
xor edx, edx
mov ecx, dword [esp + 0x30]
cmp ecx, 8
setle dl
mov dword [esp + 0x30], edx
test esi, esi
jne 0x4601b4
cmp dword [esp + 0xb0], eax
jle 0x4601b4
mov dword [esp + 0xc], 0x1e559696
mov dword [esp + 0x2c], 0xfffffff6
mov dword [esp + 0x30], 0xbb101eb
mov dword [esp + 0xc], eax
jmp 0x45fa19
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x48], 0xffffffff
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x45fa09
mov dword [esp + 0xc], eax
jmp 0x45fa84
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x45fa80
push 0x21f0
push 0xac9
push 0x15e3
push eax
push 0xc49
push 0x6fc
call dword [0xa6422c]
mov esi, dword [0xa64200]
push eax
call esi
push eax
push 0x13a3
push 0x171
push 0x18e4
push 0x1fb8
call dword [0xa6422c]
push eax
call esi
push eax
call dword [0xa64010]
xor eax, eax
inc dword [esp + 0xc]
cmp dword [esp + 0xc], eax
jle 0x45fa25
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0x84]
mov eax, dword [esp + 0x48]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x48]
add eax, dword [esp + 0xc]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x48]
mov eax, dword [esp + 0x48]
mov eax, dword [esp + 0x48]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
push 4
call fcn.004016e3
push 3
pop esi
push esi
lea ecx, [esp + 0x64]
call fcn.004016e3
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x2c], edi
mov dword [esp + 0x18], 0
jmp 0x45fafa
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x84]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x45fae7
mov dword [esp + 0x18], 0
jmp 0x45fb1e
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x60]
mov dword [eax + ecx*4], 8
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x45fb0b
mov eax, dword [esp + 0x60]
mov dword [eax], esi
mov dword [esp + 0x18], 5
lea ecx, [esp + 0xd8]
push 4
call fcn.004016e3
xor eax, eax
mov dword [esp + 0xc], eax
jmp 0x45fb5e
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0xd8]
mov dword [ecx + edx*4], 0xfffffffe
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x45fb48
mov dword [esp + 0x18], esi
cmp dword [esp + 0x18], eax
jl 0x45fcc9
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0xd8]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x28], esi
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x45fbb2
call dword [0xa6422c]
push eax
call dword [0xa64200]
push eax
call dword [0xa64034]
xor eax, eax
mov ecx, dword [esp + 0x60]
mov dword [esi + 8], eax
mov dword [esp + 0x2c], eax
push 0
mov edx, dword [ecx]
mov ecx, dword [esp + 0x34]
sub edx, dword [ecx + 8]
mov ecx, dword [esp + 0x30]
sub edx, ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x30], edx
xor edx, edx
mov esi, dword [ecx]
mov ecx, dword [esp + 0x30]
cmp ecx, esi
setg dl
xor ecx, ecx
cmp edx, esi
setl cl
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x3c]
mov ecx, dword [ecx + esi*4]
add edx, ecx
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0xc], edx
mov ecx, dword [esp + 0x1c]
cmp edx, ecx
pop ecx
setge cl
xor edx, edx
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x38], ecx
mov esi, dword [esp + 0x60]
setl dl
cmp edx, 0xfbb9cf7d
ja 0x45fc3c
mov ecx, dword [esp + 0x84]
mov edx, dword [esi]
cmp dword [ecx + edx*4], eax
mov ecx, edi
jne 0x45fc3e
mov ecx, eax
cmp ecx, dword [esi]
je 0x45fc6a
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x45fcb8
push eax
push eax
push 0xcac
push 0x15be
call dword [0xa6422c]
push eax
call dword [0xa641b4]
xor eax, eax
jmp 0x45fcb8
mov ecx, dword [esp + 0x28]
xor edx, edx
mov dword [esp + 0x38], 7
mov dword [esp + 0x2c], 0xc8f9611c
push 0
mov ecx, dword [ecx + 8]
cmp ecx, dword [esi]
mov ecx, dword [esp + 0x3c]
setg dl
imul edx, edx, 0xfff9
cmp edx, ecx
mov ecx, dword [esp + 0xdc]
pop edx
setl dl
push 0
cmp dword [ecx], edx
pop edx
sete dl
xor ecx, ecx
cmp edx, 0x6ea3
setge cl
mov dword [esp + 0x2c], ecx
dec dword [esp + 0x18]
mov esi, dword [esp + 0x28]
jns 0x45fb91
push 3
pop esi
mov dword [esp + 0x18], eax
jmp 0x45fcee
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x45fcea
push eax
push edi
push 0x99
push eax
call dword [0xa641c4]
xor eax, eax
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jle 0x45fccf
lea ecx, [esp + 0xd8]
call fcn.004017b5
mov eax, dword [esp + 0x60]
dec dword [eax]
jns 0x45fb2a
lea ecx, [esp + 0x60]
call fcn.004017b5
lea ecx, [esp + 0x84]
call fcn.004017b5
xor eax, eax
mov dword [esp + 0x30], 0x386cce57
mov dword [esp + 0xc], eax
jmp 0x45fd44
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x218], 0x53bc6e5c
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x45fd31
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], al
je 0x45fd5d
push eax
push eax
push eax
call dword [0xa641f4]
push 0xfffffffffffffff7
mov dword [esp + 0x34], 0x714a0256
lea ecx, [esp + 0x17c]
pop esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x34], 0x4cd45360
mov dword [esp + 0x34], 0x473e
mov dword [esp + 0x34], 0xa9831117
push edi
call fcn.004016e3
mov dword [esp + 0x34], 0xbc1c234a
lea ecx, [esp + 0xfc]
mov dword [esp + 0x34], 0x4f77722a
mov dword [esp + 0x34], edi
push 4
call fcn.004016e3
xor eax, eax
mov dword [esp + 0x10], eax
jmp 0x45fdca
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x224], esi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x45fdbb
mov dword [esp + 0x10], eax
jmp 0x45fded
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x178]
mov dword [ecx + edx*4], 4
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x45fdd7
mov dword [esp + 0x10], eax
jmp 0x45fe0f
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xfc]
mov dword [eax + ecx*4], 0xe213
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x45fdf9
mov eax, dword [esp + 0xfc]
lea ecx, [esp + 0xfc]
dec dword [eax]
call fcn.004017b5
lea ecx, [esp + 0x178]
call fcn.004017b5
mov dword [esp + 0x10], 0xfffffff6
xor eax, eax
mov dword [esp + 0x2c], 0x71ebdc59
mov dword [esp + 0xc], eax
jmp 0x45fe62
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x120], 0x42575e7e
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jl 0x45fe4f
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], 6
jle 0x4600f5
push 2
pop esi
mov dword [esp + 0x20], 3
lea ecx, [esp + 0x108]
push esi
call fcn.004016e3
xor eax, eax
mov dword [esp + 0x1c], 0xaf3922cb
mov dword [esp + 0xc], eax
jmp 0x45feb2
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x108]
mov dword [ecx + edx*4], edi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x45fea0
mov dword [esp + 0x20], eax
jmp 0x4600cd
mov dword [esp + 0xc], eax
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x18], 0xd1d8475
mov dword [esp + 0x38], esi
mov dword [esp + 0x18], eax
jmp 0x45feef
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x54], 0xd35da2a0
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x45fedf
mov ecx, dword [esp + 0x10]
xor edx, edx
mov ecx, dword [esp + 0x20]
cmp ecx, 0xffffffff
mov dword [esp + 0x54], ecx
setg dl
mov dword [esp + 0x28], edx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x18]
sub edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
neg edx
sbb edx, edx
inc edx
imul edx, ecx
mov ecx, dword [esp + 0x108]
mov dword [ecx], edx
cmp edx, dword [esp + 0x20]
jl 0x45ff3c
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
cmp ecx, edx
push 0
pop ecx
setne cl
xor edx, edx
cmp ecx, 0x1949
push 0
setge dl
sub edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
neg edx
sbb edx, edx
inc edx
mov dword [esp + 0x34], edx
xor edx, edx
cmp dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x10]
setl dl
mov dword [esp + 0x34], edx
xor edx, edx
cmp dword [esp + 0x34], ecx
setl dl
xor ecx, ecx
cmp ecx, edx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, 0x374c7af5
setle dl
add edx, dword [esp + 0x10]
add edx, dword [esp + 0x24]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
cmp edx, ecx
pop ecx
setg cl
cmp ecx, dword [esp + 0xc]
jle 0x460052
mov dword [esp + 0x18], 0xa746c20b
cmp dword [esp + 0x10], eax
je 0x45ffdc
mov ecx, dword [esp + 0x54]
mov ecx, dword [esp + 0x10]
xor edx, edx
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
imul ecx, dword [esp + 0x10]
cmp ecx, 0x7eab
setle dl
imul ecx, edx, 0xfffb
mov dword [esp + 0x2c], ecx
cmp dword [esp + 0x2c], eax
jne 0x46001c
mov edx, eax
cmp dword [esp + 0xc], eax
je 0x46001e
mov edx, edi
mov ecx, dword [esp + 0x18]
sub edx, ecx
add edx, dword [esp + 0x38]
mov dword [esp + 0x124], edx
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x4600a3
call dword [0xa6422c]
push eax
call dword [0xa64200]
push eax
call dword [0xa64020]
xor eax, eax
jmp 0x4600a3
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x124], ecx
mov dword [esp + 0x1c], edi
cmp dword [esp + 0x1c], eax
jl 0x4600a3
mov dword [esp + 0x18], edi
cmp dword [esp + 0x18], eax
jl 0x46009d
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x460097
push 0x2330
push 0x141
push eax
call dword [0xa641d4]
xor eax, eax
dec dword [esp + 0x18]
jns 0x460079
dec dword [esp + 0x1c]
jns 0x46006f
mov dword [esp + 0x18], eax
jmp 0x4600c2
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x4600be
push eax
push eax
call dword [0xa640e0]
xor eax, eax
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x10
jne 0x4600a9
dec dword [esp + 0x20]
cmp dword [esp + 0x20], 0xfffffffe
jg 0x45fec1
lea ecx, [esp + 0x108]
call fcn.004017b5
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 6
jg 0x45fe7b
xor eax, eax
mov esi, dword [esp + 0xb4]
mov dword [esp + 0x124], 0x2e653d3a
test esi, esi
je 0x4601b4
push edi
push edi
push edi
push 0x39b9
push 0x7db0
push esi
push 0x431
push 0x336f
push 0x3c23
call fcn.0045d8b7
add esp, 0x24
push esi
call fcn.0043101e
mov esi, eax
mov dword [esp + 0x28], eax
xor eax, eax
mov dword [esp + 0x10], 6
pop ecx
mov dword [esp + 0xc], eax
jmp 0x460160
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x90], edi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x460151
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], al
je 0x460187
push eax
push 0x12
push eax
push eax
push 0xb19
push 0x1906
call dword [0xa641a8]
xor eax, eax
mov dword [esp + 0xc], eax
jmp 0x4601a0
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x90], 0xade19d29
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x46018d
lea eax, [esp + 0x50]
push eax
call fcn.00460a1e
mov dword [eax], esi
xor eax, eax
mov dword [esp + 0x10], 0x1e559696
mov dword [esp + 0x2c], 0x1dfe936b
mov dword [esp + 0xc], 0x955205
mov dword [esp + 0x38], eax
mov dword [esp + 0xc], eax
jmp 0x4601e6
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x44], 0xfffffffd
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x4601d6
mov dword [esp + 0x10], eax
jmp 0x46024c
mov ecx, dword [esp + 0x10]
cmp dword [esp + ecx*4 + 0x44], eax
je 0x460200
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x44]
xor edx, edx
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + ecx*4 + 0x44]
mov ecx, dword [esp + 0x44]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + ecx*4 + 0x44]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + ecx*4 + 0x44]
test ecx, ecx
setg dl
xor ecx, ecx
cmp edx, 0xfffffffe
setl cl
xor edx, edx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x44]
cmp dword [esp + 0x30], ecx
setl dl
mov dword [esp + 0xc], edx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], eax
jle 0x4601f2
mov dword [esp + 0xc], 0x12
jmp 0x4603b8
movdqa xmm0, xmmword [0xa60220]
lea eax, [esp + 0x1f0]
push eax
lea eax, [esp + 0x1e4]
mov dword [esp + 0x34], 0x1a93
push eax
lea ecx, [esp + 0x218]
movdqu xmmword [esp + 0x1e8], xmm0
call fcn.004017d4
push ecx
lea ecx, [esp + 0x1cc]
push dword [eax + 4]
push dword [eax]
call fcn.0040178f
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x10], 0x17
cmp dword [esp + 0x10], 0xffffffec
jge 0x460394
push 2
lea ecx, [esp + 0x1cc]
call fcn.004012f8
mov esi, eax
mov dword [esp + 0x20], 0xfffb
mov dword [esp + 0x1c], 0x315bfeb1
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp eax, 0x49a5
setne cl
lea eax, [edx + 0xddbb]
imul ecx, eax
test ecx, ecx
je 0x460311
cmp dword [esp + 0xc], 0
je 0x460311
mov eax, edi
jmp 0x460313
xor eax, eax
cmp eax, dword [esp + 0x44]
jle 0x460324
cmp dword [esp + 0x30], 0
je 0x460324
mov ecx, edi
jmp 0x460326
xor ecx, ecx
mov eax, dword [esp + 0x44]
xor edx, edx
add ecx, eax
mov eax, dword [esp + 0x44]
cmp ecx, eax
setne dl
xor eax, eax
cmp edx, 0xfffffffb
setl al
xor edx, edx
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x38]
cmp eax, ecx
setle dl
add edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
imul edx, eax
mov dword [esi], edx
mov dword [esp + 0x1c], edx
xor edx, edx
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0xc]
cmp eax, edi
mov eax, dword [esp + 0x10]
setge dl
xor ecx, ecx
cmp eax, edx
setne cl
mov dword [esp + 0x2c], ecx
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xffffffec
jl 0x4602d1
mov byte [esp + 0x17], 0
cmp byte [esp + 0x17], 0
je 0x4603a8
push 0
call dword [0xa64224]
lea ecx, [esp + 0x1c8]
call fcn.004017b5
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xfffffff0
jle 0x46025f
lea ecx, [esp + 0xb0]
call fcn.0045066c
mov dword [esp + 0xc], 0xfffffffe
xor eax, eax
mov dword [esp + 0x1c], 8
mov dword [esp + 0x34], 0x8884515f
mov dword [esp + 0x38], 0xe974a520
mov dword [esp + 0x34], 7
mov dword [esp + 0x30], 0x32883e73
mov dword [esp + 0x10], 0xec51
mov dword [esp + 0xc], 0xa
cmp dword [esp + 0xc], 2
jne 0x460504
mov dword [esp + 0x20], 0xfffffff6
push 0xfffffffffffffffa
pop ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x2c], 0xfffffff8
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], 0xffff
mov dword [esp + 0x1c], eax
jmp 0x46045c
mov ecx, dword [esp + 0x1c]
mov dword [esp + ecx*4 + 0x1fc], 0x20985a95
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 3
jl 0x460449
mov ecx, dword [esp + 0x20]
cmp dword [esp + 0xc], eax
je 0x460475
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
xor edx, edx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x1fc], esi
inc dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x38]
cmp ecx, 0x3388
push 0
setge dl
sub edx, dword [esp + 0x30]
add edx, dword [esp + 0x10]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
cmp edx, ecx
pop ecx
setne cl
xor edx, edx
cmp esi, ecx
mov ecx, dword [esp + 0x20]
push 0
setle dl
mov dword [esp + 0x34], edx
xor edx, edx
cmp dword [esp + 0x34], ecx
setge dl
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x38]
cmp ecx, edx
pop ecx
setl cl
mov dword [esp + 0x1c], ecx
dec dword [esp + 0xc]
jmp 0x460411
inc dword [esp + 0x10]
cmp dword [esp + 0x24], 0
je 0x4607fc
mov dword [esp + 0x10], 0xfffffff6
mov dword [esp + 0x2c], 0x71ebdc59
mov dword [esp + 0xc], eax
jmp 0x46053c
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x150], 0x42575e7e
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jl 0x460529
mov dword [esp + 0x10], eax
jmp 0x4607c4
mov dword [esp + 0x18], 3
lea ecx, [esp + 0x138]
push 2
call fcn.004016e3
xor eax, eax
mov dword [esp + 0x1c], 0xaf3922cb
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], 2
jge 0x460596
push dword [esp + 0xc]
lea ecx, [esp + 0x13c]
call fcn.004012f8
mov dword [eax], edi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x460577
xor eax, eax
mov dword [esp + 0x18], eax
jmp 0x4607a9
mov dword [esp + 0xc], eax
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x20], 0xd1d8475
mov dword [esp + 0x34], 2
mov dword [esp + 0x20], eax
jmp 0x4605d1
mov ecx, dword [esp + 0x20]
mov dword [esp + ecx*4 + 0x58], 0xd35da2a0
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edi
jl 0x4605c1
mov ecx, dword [esp + 0x10]
xor edx, edx
mov ecx, dword [esp + 0x18]
cmp ecx, 0xffffffff
mov dword [esp + 0x58], ecx
setg dl
mov dword [esp + 0x28], edx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x20], ecx
mov esi, dword [esp + 0x20]
sub esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
neg esi
push eax
sbb esi, esi
inc esi
imul esi, ecx
lea ecx, [esp + 0x13c]
call fcn.004012f8
mov dword [eax], esi
cmp esi, dword [esp + 0x18]
jl 0x460624
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
xor edx, edx
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
cmp eax, ecx
setne dl
xor ecx, ecx
cmp edx, 0x1949
setge cl
sub ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [esp + 0xc]
setl dl
xor ecx, ecx
cmp edx, eax
setl cl
xor eax, eax
cmp eax, ecx
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 0x374c7af5
setle cl
xor edx, edx
add ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
cmp ecx, eax
setg dl
cmp edx, dword [esp + 0xc]
jle 0x46072c
xor eax, eax
mov dword [esp + 0x20], 0xa746c20b
cmp dword [esp + 0x10], eax
je 0x4606b7
mov ecx, dword [esp + 0x58]
mov ecx, dword [esp + 0x10]
xor edx, edx
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
imul ecx, dword [esp + 0x10]
cmp ecx, 0x7eab
setle dl
imul ecx, edx, 0xfffb
mov dword [esp + 0x2c], ecx
cmp dword [esp + 0x2c], eax
jne 0x4606f7
mov edx, eax
cmp dword [esp + 0xc], eax
je 0x4606f9
mov edx, edi
mov ecx, dword [esp + 0x20]
sub edx, ecx
add edx, dword [esp + 0x34]
mov dword [esp + 0x154], edx
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], al
je 0x46077f
call dword [0xa6422c]
push eax
call dword [0xa64200]
push eax
call dword [0xa64020]
xor eax, eax
jmp 0x46077f
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x154], eax
xor eax, eax
mov dword [esp + 0x1c], edi
cmp dword [esp + 0x1c], eax
jl 0x46077f
mov dword [esp + 0x20], edi
cmp dword [esp + 0x20], eax
jl 0x460779
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x460773
push 0x2330
push 0x141
push eax
call dword [0xa641d4]
xor eax, eax
dec dword [esp + 0x20]
jns 0x460755
dec dword [esp + 0x1c]
jns 0x46074b
mov dword [esp + 0x20], eax
jmp 0x46079e
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x46079a
push eax
push eax
call dword [0xa640e0]
xor eax, eax
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 0x10
jne 0x460785
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0xfffffffe
jg 0x46059f
lea ecx, [esp + 0x138]
call fcn.004017b5
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 6
jg 0x46054c
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x154], 0x2e653d3a
call fcn.0045e8f0
mov esi, eax
lea eax, [esp + 0x5c]
push eax
mov dword [esp + 0x98], esi
call fcn.004609bc
mov dword [eax], esi
mov dword [esp + 0xc], 0x2a72
lea ecx, [esp + 0x114]
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x34], 0x61d5
push edi
call fcn.004016e3
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x4c], 0xffff
mov dword [esp + 0x38], 0x3a0f0f5e
mov dword [esp + 0x2c], 0xc62bb2c5
mov dword [esp + 0x24], 0
jmp 0x460862
push dword [esp + 0x24]
lea ecx, [esp + 0x118]
call fcn.004012f8
or dword [eax], 0xffffffff
inc dword [esp + 0x24]
cmp dword [esp + 0x24], edi
jl 0x46084b
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0xc]
jne 0x4608a8
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x114]
neg eax
push 0
sbb eax, eax
neg eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x2c]
call fcn.004012f8
mov dword [eax], esi
test esi, esi
jne 0x4608aa
xor edi, edi
mov eax, dword [esp + 0x30]
xor ecx, ecx
cmp edi, eax
mov eax, dword [esp + 0x4c]
setg cl
xor edx, edx
cmp ecx, 0x6b9c
setl dl
xor ecx, ecx
cmp edx, eax
setle cl
add ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x34], ecx
xor ecx, ecx
cmp dword [esp + 0x34], eax
setle cl
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x114]
call fcn.004017b5
mov eax, dword [ebp + 8]
lea esi, [esp + 0x94]
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