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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1d8
push esi
push edi
push 3
pop edi
mov esi, edx
mov dword [esp + 0x38], ecx
push edi
lea ecx, [esp + 0xf8]
mov dword [esp + 0x48], esi
call fcn.00437901
mov dword [esp + 0x1c], 0xc170cd50
xor eax, eax
mov dword [esp + 0x1c], 0x71b35d56
mov dword [esp + 0x20], eax
jmp 0x46e65a
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0xf4]
mov dword [ecx + edx*4], 0x2e91a049
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edi
jl 0x46e644
mov ecx, dword [esp + 0xf4]
mov dword [ecx], eax
lea ecx, [esp + 0xf4]
call fcn.004379d3
push 4
pop eax
mov dword [esp + 0x18], 0x596960f5
lea ecx, [esp + 0x10c]
mov dword [esp + 0x28], 0x398070ad
mov dword [esp + 0x1c], eax
push eax
call fcn.00437901
xor eax, eax
mov dword [esp + 0x20], eax
jmp 0x46e6b7
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x10c]
mov dword [ecx + edx*4], 0x8974b666
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 4
jl 0x46e6a1
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], eax
jmp 0x46e714
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10c]
cmp dword [ecx + edx*4], eax
jne 0x46e71a
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
je 0x46e710
push eax
push 0x150
push 0x136f
call dword [0xab44c4]
push eax
call dword [0xab4490]
push eax
call dword [0xab40a8]
xor eax, eax
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jle 0x46e6d4
lea ecx, [esp + 0x10c]
call fcn.004379d3
mov eax, dword [0xab2f10]
xor edi, edi
inc edi
test al, 1
jne 0x46e7af
or eax, edi
mov dword [0xab2f10], eax
xor eax, eax
push eax
push eax
mov dword [0xab2ed0], eax
mov dword [0xab2ed4], eax
call fcn.004044a9
mov ecx, eax
mov dword [0xab2eec], 0x3f800000
mov dword [0xab2ed0], ecx
xor eax, eax
mov dword [esp + 0xbc], ecx
lea ecx, [esp + 0xbc]
push ecx
push 0x10
push eax
mov dword [0xab2ed8], eax
mov ecx, 0xab2ed8
mov dword [0xab2ee0], eax
mov dword [0xab2edc], eax
lea eax, [esp + 0x54]
push eax
call fcn.004041df
push 0x4b7f05
mov dword [0xab2ee4], 7
mov dword [0xab2ee8], 8
call fcn.004941ef
pop ecx
xor eax, eax
mov dword [esp + 0x20], 0x68206240
mov dword [esp + 0x20], eax
jmp 0x46e7cd
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x1c], eax
jne 0x46e7d4
dec dword [esp + 0x20]
cmp dword [esp + 0x20], 0xfffffff3
jle 0x46e7bf
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], al
je 0x46e7e8
push eax
push eax
call dword [0xab40e8]
xor eax, eax
imul ecx, dword [esp + 0x38], 0x2710
xorps xmm0, xmm0
push dword [esp + 0x48]
movdqu xmmword [esp + 0x160], xmm0
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
add ecx, esi
mov dword [esp + 0x94], eax
mov dword [esp + 0x54], ecx
lea ecx, [esp + 0x170]
push ecx
lea ecx, [esp + 0x164]
push ecx
push eax
lea ecx, [esp + 0x98]
call fcn.00437a44
xor eax, eax
mov dword [esp + 0x20], eax
jmp 0x46e850
mov ecx, dword [esp + 0x20]
mov dword [esp + ecx*4 + 0x34], 0xfffffff6
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edi
jl 0x46e840
push 3
mov dword [esp + 0x38], eax
pop esi
jmp 0x46e908
mov dword [esp + 0x20], 0xfffffffd
mov dword [esp + 0x20], esi
cmp dword [esp + 0x20], eax
jl 0x46e904
mov dword [esp + 0x24], 5
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x88]
push 3
mov ecx, dword [edx + ecx*4]
mov dword [edx + esi*4], ecx
pop esi
mov dword [esp + 0x24], esi
cmp dword [esp + 0x24], eax
jl 0x46e8fa
mov dword [esp + 0x18], 0xf023498
mov dword [esp + 0x18], eax
jmp 0x46e8ee
mov dword [esp + 0x14], 0x4727cad7
mov dword [esp + 0x14], esi
cmp dword [esp + 0x14], eax
jl 0x46e8ea
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
je 0x46e8e4
push eax
call dword [0xab44c4]
push eax
call dword [0xab4490]
push eax
call dword [0xab40b8]
xor eax, eax
dec dword [esp + 0x14]
jns 0x46e8c2
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jle 0x46e8b0
dec dword [esp + 0x24]
jns 0x46e8a2
dec dword [esp + 0x20]
jns 0x46e878
inc dword [esp + 0x34]
cmp dword [esp + 0x34], esi
jle 0x46e862
lea ecx, [esp + 0x88]
call fcn.004379d3
lea eax, [esp + 0x50]
push eax
call fcn.0046fdb0
mov eax, dword [eax]
mov dword [esp + 0xc], 0x2e91a04
mov dword [esp + 0x20], 0xa97f
mov dword [esp + 0x30], eax
xor eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], 0x79116971
mov dword [esp + 0x14], 0xf668
mov dword [esp + 0xc], eax
jmp 0x46e96a
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x54], 0x5243b9c3
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x46e95a
mov dword [esp + 0xc], eax
jmp 0x46e987
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x5c], 0xffffffff
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x46e977
mov dword [esp + 0xc], 0xffffffe5
jmp 0x46ea90
mov dword [esp + 0x28], 0x170cd509
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], 0xa0949511
cmp dword [esp + 0xc], eax
jne 0x46ea45
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x2c], ecx
mov esi, dword [esp + 0x2c]
dec esi
neg esi
sbb esi, esi
xor edx, edx
neg esi
add esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
cmp ecx, esi
setge dl
imul edx, dword [esp + 0x20]
test edx, edx
je 0x46e9eb
mov ecx, edi
cmp dword [esp + 0x20], eax
jne 0x46e9ed
mov ecx, eax
mov esi, dword [esp + 0x1c]
imul esi, ecx
mov ecx, dword [esp + 0xc]
push 0
neg esi
sbb esi, esi
xor edx, edx
inc esi
cmp esi, ecx
sete dl
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x30]
cmp ecx, edx
mov ecx, dword [esp + 0x2c]
pop edx
setne dl
cmp edx, ecx
mov ecx, dword [esp + 0x54]
push 0
pop edx
setne dl
imul edx, ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x1c], edx
xor edx, edx
cmp dword [esp + 0x1c], ecx
setle dl
neg edx
cmp edx, 7
mov edx, eax
je 0x46ea47
mov edx, edi
xor ecx, ecx
test edx, edx
push 0
setle cl
xor edx, edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x58]
cmp dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x58]
sete dl
cmp edx, ecx
mov ecx, dword [esp + 0x10]
pop edx
sete dl
sub edx, ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x1c], edx
xor edx, edx
cmp ecx, dword [esp + 0x1c]
setl dl
neg edx
mov dword [esp + 0x24], edx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 0xffffffec
jne 0x46e99a
mov dword [esp + 0x24], eax
jmp 0x46eb53
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0xc], eax
jmp 0x46eb44
mov dword [esp + 0x2c], 0xa3a1bbdb
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + ecx*4 + 0x5c]
mov ecx, dword [esp + 0x24]
cmp dword [esp + ecx*4 + 0x5c], edi
jae 0x46eb23
cmp dword [esp + 0x20], 0xa81f
jne 0x46eae9
mov ecx, dword [esp + 0x24]
mov esi, eax
cmp dword [esp + ecx*4 + 0x5c], eax
je 0x46eaeb
mov esi, edi
mov ecx, dword [esp + 0x28]
xor edx, edx
cmp esi, ecx
mov esi, edi
setle dl
xor ecx, ecx
cmp edx, 0x453
mov edx, dword [esp + 0x64]
setg cl
sub edx, ecx
mov ecx, dword [esp + 0x24]
neg edx
sbb edx, edx
inc edx
mov dword [esp + ecx*4 + 0x5c], edx
xor ecx, ecx
cmp edx, 0xfffffffb
sete cl
cmp ecx, 0xfffffffb
je 0x46eb25
mov esi, eax
mov ecx, dword [esp + 0x28]
xor edx, edx
cmp esi, ecx
setl dl
mov dword [esp + 0x2c], edx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x1c], ecx
inc dword [esp + 0x14]
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jle 0x46eab9
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 2
jle 0x46eaa4
mov esi, dword [esp + 0x30]
test esi, esi
je 0x46ec66
mov dword [esp + 0x44], edi
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], al
je 0x46eb88
push eax
call dword [0xab44c4]
push eax
call dword [0xab4344]
xor eax, eax
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
je 0x46eb99
call dword [0xab44c0]
push edi
lea ecx, [esp + 0xc8]
mov dword [esp + 0x98], esi
call fcn.00437901
mov dword [esp + 0x28], 0xd21dfe4b
lea ecx, [esp + 0xd0]
mov dword [esp + 0x1c], 0xffffffff
push 2
call fcn.00437901
xor eax, eax
mov dword [esp + 0xc], eax
jmp 0x46ebe9
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc4]
mov dword [ecx + edx*4], 0xfffffffe
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x46ebd3
mov dword [esp + 0xc], eax
jmp 0x46ec07
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0xd0]
mov dword [ecx + edx*4], edi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x46ebf5
mov ecx, dword [esp + 0xc4]
mov ecx, dword [ecx]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x28]
neg ecx
sbb ecx, ecx
inc ecx
inc ecx
jne 0x46ec2d
cmp dword [esp + 0x1c], eax
je 0x46ec2f
mov eax, edi
mov ecx, dword [esp + 0xc4]
xor edx, edx
cmp eax, dword [ecx]
mov eax, dword [esp + 0xd0]
setl dl
add edx, dword [ecx]
lea ecx, [esp + 0xd0]
mov dword [eax + 4], edx
call fcn.004379d3
lea ecx, [esp + 0xc4]
call fcn.004379d3
jmp 0x46fd2c
push dword [esp + 0x48]
movdqa xmm0, xmmword [0xaabaa0]
lea ecx, [esp + 0x190]
push ecx
lea ecx, [esp + 0x184]
mov dword [esp + 0xb8], eax
push ecx
push eax
lea ecx, [esp + 0xc0]
mov dword [esp + 0xc4], eax
movdqu xmmword [esp + 0x18c], xmm0
mov dword [esp + 0xc8], eax
call fcn.00437a44
push edi
lea ecx, [esp + 0xec]
call fcn.00437901
xor eax, eax
mov dword [esp + 0x20], eax
jmp 0x46ecd8
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0xe8]
mov dword [ecx + edx*4], 2
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edi
jl 0x46ecc2
mov edx, dword [esp + 0xe8]
mov esi, dword [esp + 0xb0]
mov dword [edx], eax
mov ecx, dword [edx]
cmp dword [esi + ecx*4], eax
jne 0x46ecfd
inc ecx
mov dword [edx], ecx
cmp ecx, 3
jle 0x46ecee
lea ecx, [esp + 0xe8]
call fcn.004379d3
lea ecx, [esp + 0xb0]
call fcn.004379d3
mov eax, dword [0xab2f10]
test al, 2
jne 0x46eda3
or eax, 2
mov dword [0xab2f10], eax
xor eax, eax
push eax
push eax
mov dword [0xab2ef0], eax
mov dword [0xab2ef4], eax
call fcn.004044a9
mov ecx, eax
mov dword [0xab2f0c], 0x3f800000
mov dword [0xab2ef0], ecx
xor eax, eax
mov dword [esp + 0xc0], ecx
lea ecx, [esp + 0xc0]
push ecx
push 0x10
push eax
mov dword [0xab2ef8], eax
mov ecx, 0xab2ef8
mov dword [0xab2f00], eax
mov dword [0xab2efc], eax
lea eax, [esp + 0x164]
push eax
call fcn.004041df
push 0x4b7f00
mov dword [0xab2f04], 7
mov dword [0xab2f08], 8
call fcn.004941ef
pop ecx
push 9
pop eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x28], 0x37186542
mov dword [esp + 0x24], 0xd416db6d
mov dword [esp + 0x18], eax
xor eax, eax
mov dword [esp + 0x28], 0x3e3585ca
mov dword [esp + 0x20], edi
mov dword [esp + 0x30], 0x2cbd4dae
mov dword [esp + 0x28], 0x8d7cd142
mov dword [esp + 0x1c], 0x8ee72c95
mov dword [esp + 0x1c], 0xedd67940
mov dword [esp + 0x1c], 0xcbffaef1
mov dword [esp + 0xc], 0xec2e0cf5
cmp dword [esp + 0xc], eax
je 0x46ee06
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov edx, 0xc8953526
cmp edx, ecx
push 3
sbb ecx, ecx
inc ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x2c]
pop edx
cmp edx, ecx
mov ecx, dword [esp + 0x24]
push 0
sbb edx, edx
inc edx
cmp ecx, edx
pop ecx
setge cl
sub ecx, dword [esp + 0x20]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
cmp dword [esp + 0x1c], ecx
setl dl
cmp edx, dword [esp + 0xc]
jle 0x46ee9d
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], al
je 0x46efd0
push eax
push eax
push eax
push eax
call dword [0xab4324]
jmp 0x46efce
mov dword [esp + 0x1c], 0xfffffffd
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], eax
jmp 0x46eec2
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x1b8], 8
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x46eeaf
push 3
mov dword [esp + 0x10], eax
pop esi
jmp 0x46eee5
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x18c], 0xffffffff
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x46eed2
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], 0xfffffff1
jge 0x46efd0
mov dword [esp + 0x28], 0x4fdaf0db
lea ecx, [esp + 0x140]
mov dword [esp + 0x2c], edi
push esi
call fcn.00437901
xor eax, eax
mov dword [esp + 0x20], eax
jmp 0x46ef31
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x140]
mov dword [ecx + edx*4], 0x592e0c80
inc dword [esp + 0x20]
cmp dword [esp + 0x20], esi
jl 0x46ef1b
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
neg esi
sbb esi, esi
neg esi
sub esi, 0x1a91
neg esi
sbb esi, esi
xor edx, edx
add esi, 0xffff0415
cmp esi, ecx
setl dl
imul edx, dword [esp + 0x28]
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x194], eax
mov dword [esp + 0x24], 0xc
jmp 0x46efa9
mov dword [esp + 0x20], eax
jmp 0x46ef9e
mov dword [esp + 0x28], 0xffffffff
cmp dword [esp + 0x24], eax
jne 0x46efa5
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 2
jle 0x46ef8c
dec dword [esp + 0x24]
cmp dword [esp + 0x24], 0xffffffe9
jne 0x46ef86
lea ecx, [esp + 0x140]
call fcn.004379d3
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xfffffff1
push 3
pop esi
jl 0x46eefa
xor eax, eax
xorps xmm0, xmm0
movdqu xmmword [esp + 0x68], xmm0
mov dword [esp + 0x24], 0xa136951a
mov dword [esp + 0xc], 0x5047
mov dword [esp + 0x14], 0xfffffffb
mov dword [esp + 0x18], 9
mov dword [esp + 0x20], 0xfffffffd
mov dword [esp + 0x28], 0xe5fef407
mov dword [esp + 0x2c], 0x9d6c8400
mov dword [esp + 0x1c], 0x2959
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0xc], eax
je 0x46f03b
mov ecx, dword [esp + 0x24]
sub ecx, dword [esp + 0x24]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
sub ecx, dword [esp + 0xc]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
mov dword [esp + 0x18], ecx
mov esi, dword [esp + 0x18]
add esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
cmp ecx, esi
setle dl
mov dword [esp + 0x20], edx
cmp dword [esp + 0x14], eax
je 0x46f07d
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0x18], eax
je 0x46f0ad
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
imul ecx, dword [esp + 0x24], 0xeb92
test ecx, ecx
je 0x46f0ad
mov eax, edi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
sub edx, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
lea eax, [esp + 0x38]
push eax
setge cl
mov dword [esp + 0x18], ecx
call fcn.0046fe12
xor esi, esi
push 2
mov ecx, dword [eax]
mov dword [esp + 0x1c], 0xfffc
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x11c]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x28], 0x3dc0e3e7
mov dword [esp + 0x20], 0xf2ba167c
call fcn.00437901
mov dword [esp + 0x14], esi
jmp 0x46f14b
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x118]
mov dword [eax + ecx*4], 7
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x46f135
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0xffaf
setg cl
xor eax, eax
cmp ecx, 0x46a1
setl al
xor edx, edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
sub ecx, eax
mov eax, dword [esp + 0x24]
cmp ecx, eax
mov eax, dword [esp + 0x18]
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x18]
setl cl
xor edx, edx
cmp eax, ecx
mov eax, dword [esp + 0x24]
setle dl
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x18]
neg eax
sbb eax, eax
xor edx, edx
inc eax
cmp eax, 0x3606
mov eax, dword [esp + 0x18]
setge dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x118]
setl cl
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x118]
inc dword [eax + 4]
call fcn.004379d3
cmp byte [ebp + 0xc], 0
jne 0x46f1ff
mov esi, dword [esp + 0x20]
test esi, esi
jne 0x46f6a3
mov dword [esp + 0x18], 0x987f2fb5
xor eax, eax
mov dword [esp + 0x28], 0xc46bc227
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], 0xfcc1031c
mov dword [esp + 0x24], 0x66fa4bc4
mov dword [esp + 0x30], 0x417612d2
mov dword [esp + 0x30], eax
mov dword [esp + 0x30], 0xf844ba92
mov dword [esp + 0x30], 0x907c4e7c
mov dword [esp + 0x30], eax
mov dword [esp + 0x30], 0xbbda73a1
mov dword [esp + 0x28], 0x5bb5a275
mov dword [esp + 0x28], 0x56237581
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x2c], edi
mov dword [esp + 0xc], eax
jmp 0x46f27f
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x3c], edi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x46f273
mov dword [esp + 0xc], eax
jmp 0x46f297
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x40], edi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x46f28b
mov dword [esp + 0xc], eax
jmp 0x46f2b6
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x16c], 0xadd9258c
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x46f2a3
mov ecx, dword [esp + 0x1c]
xor edx, edx
mov ecx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
dec dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x18]
cmp ecx, 4
mov ecx, dword [esp + 0x28]
setle dl
mov dword [esp + 0x1c], edx
xor edx, edx
cmp dword [esp + 0x1c], ecx
setne dl
mov dword [esp + 0x28], edx
mov esi, dword [esp + 0x18]
sub esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
neg esi
sbb esi, esi
xor edx, edx
inc esi
cmp esi, ecx
mov ecx, dword [esp + 0x30]
setg dl
mov dword [esp + 0x1c], edx
xor edx, edx
cmp dword [esp + 0x1c], ecx
setne dl
sub edx, 0x4e2f0ac7
jne 0x46f327
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x178]
mov dword [esp + 0x28], edi
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
neg edx
push 0
sbb edx, edx
neg edx
cmp edx, ecx
mov ecx, dword [esp + 0x1c]
pop edx
sete dl
neg ecx
push 0
sbb ecx, ecx
inc ecx
cmp ecx, edx
mov ecx, dword [esp + 0x40]
pop edx
setle dl
imul edx, ecx
mov ecx, dword [esp + 0x24]
push 0
mov dword [esp + 0x20], edx
xor edx, edx
cmp dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x170]
setne dl
cmp edx, ecx
pop ecx
setge cl
sub ecx, 0xa751f099
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, dword [esp + 0x18]
je 0x46f3de
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], al
je 0x46f3b2
call dword [0xab44c4]
push eax
call dword [0xab4464]
xor eax, eax
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
je 0x46f3e6
push eax
push 0x196b
push 0x1e42
call dword [0xab44c4]
push eax
call dword [0xab4490]
push eax
call dword [0xab409c]
jmp 0x46f3e6
mov dword [esp + 0x30], 0xfffffffd
mov dl, byte [ebp + 0xc]
lea eax, [esp + 0x1c0]
mov ecx, dword [esp + 0x38]
push eax
call fcn.00437c74
mov esi, eax
lea edi, [esp + 0x6c]
xor eax, eax
pop ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x1c], 9
mov dword [esp + 0x14], eax
jmp 0x46f43e
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x198], 0xc93b4e1
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x46f42b
push 3
pop ecx
mov dword [esp + 0x80], ecx
cmp dword [esp + 0x80], eax
jl 0x46f475
mov ecx, dword [esp + 0x80]
cmp dword [esp + ecx*4 + 0x198], eax
jne 0x46f475
mov dword [esp + 0x1c], eax
dec dword [esp + 0x80]
jns 0x46f458
cmp byte [ebp + 0xc], al
je 0x46f6a7
cmp dword [esp + 0x70], eax
je 0x46f6a7
push 2
lea ecx, [esp + 0x104]
call fcn.00437901
xor edi, edi
inc edi
xor eax, eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], eax
jmp 0x46f4bb
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x100]
mov dword [ecx + edx*4], 0x5664dc9e
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x46f4a5
mov ecx, dword [esp + 0x100]
push 0
mov edx, dword [ecx + 4]
mov esi, dword [ecx]
imul ecx, edx, 0xfe46
cmp edx, ecx
mov edx, esi
pop ecx
sete cl
sub edx, ecx
neg edx
sbb edx, edx
add edx, 0xfffffff9
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, esi
setl cl
inc ecx
mov dword [esp + 0x1c], ecx
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], al
je 0x46f520
push 0xd9a
push 0xd2
call dword [0xab44c4]
push eax
call dword [0xab4490]
push eax
call dword [0xab4098]
lea ecx, [esp + 0x100]
call fcn.004379d3
mov eax, dword [esp + 0x74]
mov dword [esp + 0xc], 0xb7c7ce53
mov dword [esp + 0x18], 0xdd2e91c8
mov dword [esp + 0x14], 0xd535dd25
mov dword [esp + 0x28], 0xc242ea6a
mov dword [esp + 0x1c], 0x25f8e10b
inc dword [esp + 0xc]
mov dword [esp + 0x98], eax
imul eax, dword [esp + 0xc], 0xe97e
test eax, eax
je 0x46f675
mov dword [esp + 0x2c], 0x7d7c1188
xor eax, eax
mov dword [esp + 0x24], 0x6a41
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], 0x3899
cmp dword [esp + 0x2c], eax
jne 0x46f601
cmp dword [esp + 0x24], eax
jne 0x46f5a5
mov ecx, eax
cmp dword [esp + 0xc], eax
je 0x46f5a7
mov ecx, edi
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x18], eax
je 0x46f5b5
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
cmp ecx, edx
push 0
pop ecx
setg cl
imul ecx, dword [esp + 0x24]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
imul ecx, dword [esp + 0xc]
test ecx, ecx
jne 0x46f601
cmp dword [esp + 0x28], eax
je 0x46f603
mov edx, edi
xor ecx, ecx
cmp edx, 0xfffffff7
setg cl
xor edx, edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
cmp dword [esp + 0x1c], ecx
setle dl
cmp edx, dword [esp + 0x24]
jne 0x46f628
cmp dword [esp + 0x14], eax
je 0x46f62c
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
cmp edx, ecx
push 0
pop ecx
setle cl
xor edx, edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x28]
cmp dword [esp + 0x1c], ecx
setg dl
xor ecx, ecx
cmp edx, 0xf2ba
setle cl
sub ecx, 0x68d270c1
add ecx, dword [esp + 0xc]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0x28], ecx
jmp 0x46f68e
xor eax, eax
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], al
je 0x46f68e
push 0x1414
call dword [0xab4494]
xor eax, eax
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x28], 0x33aee64c
mov dword [esp + 0x9c], ecx
jmp 0x46f6aa
xor eax, eax
jmp 0x46f6ae
xor edi, edi
inc edi
mov esi, dword [esp + 0x20]
mov dword [esp + 0xc], edi
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xa4], ecx
push 3
mov dword [esp + 0x10], eax
pop ecx
cmp dword [esp + 0xc], ecx
jg 0x46f770
push ecx
pop esi
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
push 0
mov edx, dword [esp + ecx*4 + 0xa4]
mov ecx, dword [esp + 0x10]
cmp ecx, edx
pop ecx
setge cl
xor edx, edx
test ecx, ecx
mov ecx, dword [esp + 0xc]
setg dl
mov ecx, dword [esp + ecx*4 + 0xa0]
imul edx, ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0xa0], edx
mov ecx, 0xffff62f8
sub ecx, edx
xor edx, edx
cmp ecx, 0x7d96711d
mov ecx, dword [esp + 0xc]
setl dl
mov dword [esp + 0x1c], edx
xor edx, edx
cmp dword [esp + 0x1c], ecx
setl dl
mov dword [esp + 0x1c], edx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jle 0x46f6f8
mov esi, dword [esp + 0x20]
test esi, esi
jne 0x46fa87
cmp dword [esp + 0x68], esi
jle 0x46fa87
mov dword [esp + 0xc], 4
mov dword [esp + 0x28], 0x302aff63
mov dword [esp + 0x18], 0xf0dfbc43
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], 2
mov dword [esp + 0x30], 0xfffffffa
mov dword [esp + 0x14], 0x82ec
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x28], eax
jne 0x46f7f6
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x28]
sub esi, ecx
mov ecx, dword [esp + 0x18]
neg esi
sbb esi, esi
xor edx, edx
inc esi
cmp esi, ecx
mov esi, eax
setl dl
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x18], ecx
je 0x46f7f8
mov esi, edi
mov ecx, dword [esp + 0x2c]
xor edx, edx
cmp esi, ecx
setge dl
mov dword [esp + 0x2c], edx
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
sub edx, ecx
je 0x46f817
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
xor edx, edx
test ecx, ecx
setns dl
sub edx, dword [esp + 0x14]
jne 0x46f830
mov edx, eax
cmp dword [esp + 0x14], eax
je 0x46f832
mov edx, edi
dec dword [esp + 0xc]
mov ecx, dword [esp + 0x24]
add ecx, edx
imul ecx, dword [esp + 0xc]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
cmp dword [esp + 0x30], edi
jbe 0x46f864
mov ecx, edi
cmp dword [esp + 0x14], eax
jne 0x46f866
mov ecx, eax
dec ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x1c], 0xae2ad21d
mov dword [esp + 0x24], 0xfffffff7
mov dword [esp + 0x1c], 0x5995
mov dword [esp + 0x18], edi
mov dword [esp + 0x24], 0xfffffffe
jmp 0x46fa56
mov dword [esp + 0xc], eax
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
je 0x46f8b1
push 0xc76
push eax
call dword [0xab4488]
xor eax, eax
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x1c], eax
je 0x46f8c7
mov esi, edi
cmp dword [esp + 0x24], eax
jne 0x46f8cf
mov esi, eax
cmp dword [esp + 0x24], eax
je 0x46f8d3
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
xor edx, edx
cmp ecx, 0xfffffff6
mov ecx, dword [esp + 0xc]
setne dl
mov dword [esp + 0x1c], edx
xor edx, edx
cmp dword [esp + 0x1c], ecx
setne dl
xor ecx, ecx
cmp esi, edx
sete cl
mov dword [esp + 0x1c], ecx
mov ecx, 0x5ba7723
sub ecx, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
je 0x46f95a
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
je 0x46f91f
push eax
push eax
call dword [0xab42f4]
xor eax, eax
mov dword [esp + 0x18], 0xd
jmp 0x46f94e
mov dword [esp + 0x1c], 0xbec5
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
je 0x46f946
push eax
push eax
call dword [0xab42f4]
xor eax, eax
mov dword [esp + 0x1c], edi
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0xffffffee
jne 0x46f929
jmp 0x46fa52
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], edi
jge 0x46f979
push 3
pop edx
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x4c], edx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x46f967
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], eax
jg 0x46fa52
mov esi, 0xb52dd860
mov dword [esp + 0x1c], 2
mov dword [esp + 0x124], esi
mov dword [esp + 0x128], esi
mov dword [esp + 0x12c], esi
mov dword [esp + 0x130], esi
mov dword [esp + 0x14], eax
jmp 0x46f9c9
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x1a8], 0xfffffffe
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x46f9b6
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
je 0x46fa05
push 0x1f34
push 0x177
push 0x267b
push 0x58b
call dword [0xab44c4]
push eax
call dword [0xab4490]
push eax
call dword [0xab40c4]
xor eax, eax
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
cmp edx, ecx
mov ecx, dword [esp + 0xc]
push 0
pop edx
setge dl
cmp dword [esp + ecx*4 + 0x4c], edx
jne 0x46fa3b
mov ecx, dword [esp + 0xc]
mov edx, 0x254e
mov dword [esp + ecx*4 + 0x4c], edx
mov dword [esp + 0x1a8], edx
mov ecx, dword [esp + 0x1c]
mov ecx, eax
jmp 0x46fa3d
mov ecx, edi
mov dword [esp + 0x12c], ecx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], eax
jle 0x46f98c
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 0xe
jne 0x46f894
mov ecx, dword [esp + 0x6c]
test ecx, ecx
je 0x46fa87
cmp dword [esp + 0x68], 0
je 0x46fa87
call fcn.0046e137
mov esi, eax
lea eax, [esp + 0x38]
push eax
mov dword [esp + 0x24], esi
call fcn.0046fe12
mov dword [eax], esi
push 4
lea ecx, [esp + 0xe0]
call fcn.00437901
mov dword [esp + 0x18], 0xffffffff
xor eax, eax
mov dword [esp + 0x1c], 0xd8f8f576
mov dword [esp + 0x14], eax
jmp 0x46fabf
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xdc]
mov dword [ecx + edx*4], eax
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x46faad
push 3
mov dword [esp + 0x1c], eax
pop ecx
jmp 0x46fb21
mov dword [esp + 0x28], 0xed23b618
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x28], eax
jl 0x46fb1d
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
je 0x46fafb
push eax
push eax
push 0x75d
call dword [0xab4014]
xor eax, eax
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xdc]
mov ecx, dword [edx + ecx*4]
add ecx, dword [edx + esi*4]
mov dword [esp + 0x1c], ecx
dec dword [esp + 0x28]
jns 0x46fae1
push 3
pop ecx
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ecx
jle 0x46facf
lea ecx, [esp + 0xdc]
call fcn.004379d3
lea ecx, [esp + 0x68]
call fcn.0043902a
mov dword [esp + 0x18], 0xbb74
lea ecx, [esp + 0x14c]
mov dword [esp + 0x28], 0x9c4185a1
xor eax, eax
mov dword [esp + 0x1c], 0x8b060d2f
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], 0x93c1de6f
mov dword [esp + 0xc], 0x643b8a2
mov dword [esp + 0x1c], 0xe9ab5c29
mov dword [esp + 0x2c], eax
push 2
call fcn.00437901
mov dword [esp + 0x1c], 0xffffffff
xor eax, eax
mov dword [esp + 0x30], 0x1717c264
mov dword [esp + 0x14], 0xfffffff8
mov dword [esp + 0x14], eax
jmp 0x46fbba
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14c]
mov dword [ecx + edx*4], 0x4b969b42
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x46fba4
mov ecx, dword [esp + 0x18]
sub ecx, 0x7c8438ae
je 0x46fc80
mov dword [esp + 0x30], 0xbe39e3c
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x30], eax
mov dword [esp + 0x30], 0x68cb667f
mov dword [esp + 0x14], eax
jmp 0x46fc06
mov ecx, dword [esp + 0x14]
mov dword [esp + ecx*4 + 0x1d0], 0x59785734
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x46fbf3
mov dword [esp + 0x18], eax
cmp dword [esp + 0x18], 0x25
jg 0x46fcea
push 3
xor esi, esi
pop edi
push 8
pop eax
mov dword [esp + 0x30], 0xc0f8067e
lea ecx, [esp + 0x134]
mov dword [esp + 0x30], eax
mov dword [esp + 0x30], eax
push edi
call fcn.00437901
mov dword [esp + 0x14], esi
jmp 0x46fc5d
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x134]
mov dword [eax + ecx*4], 0x60ec01e6
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x46fc47
inc dword [esp + 0x1c]
lea ecx, [esp + 0x134]
call fcn.004379d3
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x25
jle 0x46fc21
jmp 0x46fcea
mov dword [esp + 0x14], 0xffff
mov esi, eax
cmp dword [esp + 0x14], eax
je 0x46fc92
mov esi, edi
mov ecx, dword [esp + 0x28]
xor edx, edx
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
cmp ecx, 5
setle dl
mov dword [esp + 0x28], edx
cmp dword [esp + 0x28], eax
je 0x46fcca
cmp dword [esp + 0xc], eax
jne 0x46fccc
mov edi, eax
xor ecx, ecx
cmp edi, 0x52f109d4
setle cl
xor eax, eax
cmp esi, ecx
setg al
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x14c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
call fcn.004379d3
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x46fd2c
mov edx, dword [esp + 0x44]
call fcn.0046e353
mov esi, eax
lea eax, [esp + 0x50]
push eax
mov dword [esp + 0x98], esi
call fcn.0046fdb0
mov dword [eax], esi
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