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

Disassembly:
sub esp, 0x18c
mov eax, dword [esp + 0x19c]
push ebx
push ebp
push esi
mov esi, ecx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x1b0]
mov ecx, dword [esp + 0x1b4]
mov ebp, dword [esi + 0x1c]
and eax, 0xffff
xor ebx, ebx
and ecx, 0xffff
push edi
mov edi, dword [esp + 0x1a8]
dec eax
dec ecx
cmp ebp, ebx
mov edx, edi
mov dword [esp + 0x60], ebx
je 0x4645c3
mov ebp, dword [esp + 0x1a0]
test ebp, ebp
jge 0x463396
neg ebp
mov dword [esp + 0x60], ebp
sub edx, ebp
mov ebp, dword [esp + 0x1a0]
lea edi, [edi + ebp - 1]
cmp edi, eax
jle 0x4633a7
sub eax, dword [esp + 0x60]
sub eax, ebp
inc eax
mov edx, eax
mov edi, dword [esp + 0x1a4]
test edi, edi
jge 0x4633c1
mov eax, dword [esp + 0x1ac]
mov ebx, edi
neg ebx
sub eax, ebx
jmp 0x4633c5
mov eax, dword [esp + 0x78]
mov ebp, dword [esp + 0x1ac]
lea ebp, [edi + ebp - 1]
cmp ebp, ecx
jle 0x4633db
sub ecx, ebx
sub ecx, edi
inc ecx
mov eax, ecx
test edx, edx
jle 0x464595
test eax, eax
jle 0x464595
mov ecx, dword [esp + 0x60]
lea edi, [esp + 0x120]
add ecx, edx
lea edx, [ebx + eax]
mov dword [esp + 0x110], ecx
mov ecx, 0x1f
xor eax, eax
mov dword [esp + 0x114], edx
rep stosd dword es:[edi], eax
mov eax, dword [esi + 0x1c]
push 0
lea edx, [esp + 0x124]
push 1
mov dword [esp + 0x128], 0x7c
mov ecx, dword [eax]
push edx
push 0
push eax
call dword [ecx + 0x64]
test eax, eax
jl 0x4645c3
mov eax, dword [esp + 0x144]
mov edx, dword [esp + 0x1b0]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x130]
sar eax, 1
mov dword [esp + 0x74], eax
xor ecx, ecx
xor eax, eax
test ebx, ebx
mov dword [esp + 0x5c], eax
jle 0x463478
mov edi, ebx
xor ebp, ebp
dec edi
mov bp, word [edx + ecx*2]
lea eax, [eax + ebp + 1]
mov ecx, eax
jne 0x463469
mov edi, dword [esp + 0x114]
mov dword [esp + 0x68], ebx
cmp ebx, edi
jge 0x464595
xor edi, edi
mov di, word [edx + ecx*2]
add eax, edi
inc ecx
cmp ecx, eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x14], ecx
jge 0x464572
mov ebx, dword [esp + 0x60]
mov edi, dword [esp + 0x5c]
mov eax, ecx
jmp 0x4634c3
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1b0]
mov edi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x60]
mov cx, word [edx + eax*2]
cmp cx, 0xc0
jne 0x4634e5
inc eax
xor ecx, ecx
mov cx, word [edx + eax*2]
inc eax
add edi, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x5c], edi
jmp 0x46455b
cmp cx, 0xc1
jne 0x463b4e
inc eax
xor ebp, ebp
mov ecx, edi
mov bp, word [edx + eax*2]
inc eax
add edi, ebp
mov dword [esp + 0x54], ebp
cmp ebx, edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x5c], edi
jg 0x464555
mov ebp, dword [esp + 0x110]
cmp ebp, ecx
jl 0x464551
cmp ecx, ebx
jge 0x463735
mov ebp, ebx
sub ebp, ecx
mov ecx, edi
sub ecx, ebx
add eax, ebp
test ecx, ecx
mov dword [esp + 0x14], eax
jle 0x46372c
mov edi, dword [esp + 0x68]
mov ebp, dword [esp + 0x1a4]
add edi, ebp
lea edx, [edx + eax*2]
imul edi, dword [esp + 0x74]
add edi, ebx
mov ebx, dword [esp + 0x1a0]
add edi, ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x34], ecx
lea edi, [ebx + edi*2]
mov dword [esp + 0x30], edi
mov eax, dword [esp + 0x2c]
mov ebx, dword [esi + 0x74]
xor ecx, ecx
mov edx, ebx
mov ax, word [eax]
mov cl, byte [esi + 0x69]
and eax, 0xffff
mov edi, ecx
and edx, eax
mov dword [esp + 0x84], 0
shr edx, cl
mov ecx, dword [esi + 0x70]
mov byte [esp + 0x1c], dl
xor edx, edx
mov dl, byte [esi + 0x68]
mov ebp, edx
mov edx, ecx
and edx, eax
mov ecx, ebp
shr edx, cl
xor ecx, ecx
mov cl, byte [esi + 0x67]
mov dword [esp + 0x28], ecx
mov byte [esp + 0x24], dl
mov edx, dword [esi + 0x6c]
and edx, eax
shr edx, cl
mov ecx, edi
shr ebx, cl
mov byte [esp + 0x44], dl
mov edx, dword [esp + 0x1c]
and edx, 0xff
mov dword [esp + 0x10], edx
mov dword [esp + 0x80], ebx
fild dword [esp + 0x10]
fild qword [esp + 0x80]
fdivr st(1)
fmul st(1)
fmul dword [0x476c50]
fadd st(1)
call fcn.00468520
mov byte [esp + 0x1c], al
mov eax, dword [esp + 0x24]
and eax, 0xff
mov ecx, ebp
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x70]
shr eax, cl
fstp st(0)
fild dword [esp + 0x10]
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], eax
mov dword [esp + 0x40], eax
fild qword [esp + 0x90]
fdivr st(1)
fmul st(1)
fmul dword [0x476c50]
fadd st(1)
call fcn.00468520
mov ecx, dword [esp + 0x44]
mov byte [esp + 0x24], al
mov eax, dword [esi + 0x6c]
and ecx, 0xff
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x28]
shr eax, cl
fstp st(0)
fild dword [esp + 0x10]
mov dword [esp + 0x11c], 0
mov dword [esp + 0x118], eax
mov dword [esp + 0x48], eax
fild qword [esp + 0x118]
fdivr st(1)
fmul st(1)
fmul dword [0x476c50]
fadd st(1)
call fcn.00468520
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x44], al
and edx, 0xff
cmp edx, ebx
fstp st(0)
jbe 0x4636ad
mov byte [esp + 0x1c], bl
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x40]
and ecx, 0xff
cmp ecx, edx
ja 0x4636c3
mov dl, byte [esp + 0x24]
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
and ebx, 0xff
cmp ebx, ecx
jbe 0x4636d7
mov al, cl
mov ecx, dword [esp + 0x28]
xor bx, bx
mov bl, al
movzx ax, byte [esp + 0x1c]
movzx dx, dl
shl ebx, cl
mov ecx, ebp
shl edx, cl
mov ecx, edi
shl eax, cl
or ebx, edx
mov edx, dword [esp + 0x2c]
add edx, 2
or ebx, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], edx
mov word [eax], bx
add eax, 2
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x34]
dec eax
mov dword [esp + 0x34], eax
jne 0x463570
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x60]
mov edi, dword [esp + 0x5c]
sub edi, ebx
add eax, edi
jmp 0x464557
cmp ecx, ebp
jg 0x463946
cmp ebp, edi
jge 0x463946
mov eax, ebp
sub eax, ecx
test eax, eax
jle 0x463937
mov edi, dword [esp + 0x68]
mov ebx, dword [esp + 0x1a4]
add edi, ebx
mov dword [esp + 0x34], eax
imul edi, dword [esp + 0x74]
add edi, ecx
mov ecx, dword [esp + 0x1a0]
add edi, ecx
mov ecx, dword [esp + 0x70]
lea ecx, [ecx + edi*2]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x14]
lea edx, [edx + ecx*2]
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x2c]
mov ebx, dword [esi + 0x74]
xor ecx, ecx
mov edx, ebx
mov ax, word [eax]
mov cl, byte [esi + 0x69]
and eax, 0xffff
mov edi, ecx
and edx, eax
mov dword [esp + 0xa4], 0
shr edx, cl
mov ecx, dword [esi + 0x70]
mov byte [esp + 0x1c], dl
xor edx, edx
mov dl, byte [esi + 0x68]
mov ebp, edx
mov edx, ecx
and edx, eax
mov ecx, ebp
shr edx, cl
xor ecx, ecx
mov cl, byte [esi + 0x67]
mov dword [esp + 0x28], ecx
mov byte [esp + 0x24], dl
mov edx, dword [esi + 0x6c]
and edx, eax
shr edx, cl
mov ecx, edi
shr ebx, cl
mov byte [esp + 0x44], dl
mov edx, dword [esp + 0x1c]
and edx, 0xff
mov dword [esp + 0x10], edx
mov dword [esp + 0xa0], ebx
fild dword [esp + 0x10]
fild qword [esp + 0xa0]
fdivr st(1)
fmul st(1)
fmul dword [0x476c50]
fadd st(1)
call fcn.00468520
mov byte [esp + 0x1c], al
mov eax, dword [esp + 0x24]
and eax, 0xff
mov ecx, ebp
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x70]
shr eax, cl
fstp st(0)
fild dword [esp + 0x10]
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe0], eax
mov dword [esp + 0x40], eax
fild qword [esp + 0xe0]
fdivr st(1)
fmul st(1)
fmul dword [0x476c50]
fadd st(1)
call fcn.00468520
mov ecx, dword [esp + 0x44]
mov byte [esp + 0x24], al
mov eax, dword [esi + 0x6c]
and ecx, 0xff
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x28]
shr eax, cl
fstp st(0)
fild dword [esp + 0x10]
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb0], eax
mov dword [esp + 0x48], eax
fild qword [esp + 0xb0]
fdivr st(1)
fmul st(1)
fmul dword [0x476c50]
fadd st(1)
call fcn.00468520
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x44], al
and edx, 0xff
cmp edx, ebx
fstp st(0)
jbe 0x4638c5
mov byte [esp + 0x1c], bl
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x40]
and ecx, 0xff
cmp ecx, edx
ja 0x4638db
mov dl, byte [esp + 0x24]
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
and ebx, 0xff
cmp ebx, ecx
jbe 0x4638ef
mov al, cl
movzx bx, byte [esp + 0x1c]
mov ecx, dword [esp + 0x28]
movzx dx, dl
shl ebx, cl
mov ecx, ebp
movzx ax, al
shl edx, cl
mov ecx, edi
shl eax, cl
or ebx, edx
mov edx, dword [esp + 0x2c]
add edx, 2
or ebx, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], edx
mov word [eax], bx
add eax, 2
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x34]
dec eax
mov dword [esp + 0x34], eax
jne 0x463788
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x14]
add eax, ecx
jmp 0x464557
mov eax, dword [esp + 0x54]
test eax, eax
jle 0x463b3f
mov eax, dword [esp + 0x68]
mov edi, dword [esp + 0x1a4]
add eax, edi
imul eax, dword [esp + 0x74]
add eax, ecx
mov ecx, dword [esp + 0x1a0]
add eax, ecx
mov ecx, dword [esp + 0x70]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x54]
lea edx, [edx + ecx*2]
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], edx
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esi + 0x74]
xor edx, edx
mov dword [esp + 0x104], 0
mov dl, byte [esi + 0x69]
mov ax, word [ecx]
mov edi, edx
and eax, 0xffff
mov edx, ebx
mov ecx, edi
and edx, eax
shr edx, cl
mov ecx, dword [esi + 0x70]
mov byte [esp + 0x1c], dl
xor edx, edx
mov dl, byte [esi + 0x68]
mov ebp, edx
mov edx, ecx
and edx, eax
mov ecx, ebp
shr edx, cl
xor ecx, ecx
mov cl, byte [esi + 0x67]
mov dword [esp + 0x28], ecx
mov byte [esp + 0x24], dl
mov edx, dword [esi + 0x6c]
and edx, eax
shr edx, cl
mov ecx, edi
shr ebx, cl
mov byte [esp + 0x44], dl
mov edx, dword [esp + 0x1c]
and edx, 0xff
mov dword [esp + 0x10], edx
mov dword [esp + 0x100], ebx
fild dword [esp + 0x10]
fild qword [esp + 0x100]
fdivr st(1)
fmul st(1)
fmul dword [0x476c50]
fadd st(1)
call fcn.00468520
mov byte [esp + 0x1c], al
mov eax, dword [esp + 0x24]
and eax, 0xff
mov ecx, ebp
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x70]
shr eax, cl
fstp st(0)
fild dword [esp + 0x10]
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc0], eax
mov dword [esp + 0x40], eax
fild qword [esp + 0xc0]
fdivr st(1)
fmul st(1)
fmul dword [0x476c50]
fadd st(1)
call fcn.00468520
mov ecx, dword [esp + 0x44]
mov byte [esp + 0x24], al
mov eax, dword [esi + 0x6c]
and ecx, 0xff
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x28]
shr eax, cl
fstp st(0)
fild dword [esp + 0x10]
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf0], eax
mov dword [esp + 0x48], eax
fild qword [esp + 0xf0]
fdivr st(1)
fmul st(1)
fmul dword [0x476c50]
fadd st(1)
call fcn.00468520
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x44], al
and edx, 0xff
cmp edx, ebx
fstp st(0)
jbe 0x463acc
mov byte [esp + 0x1c], bl
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x40]
and ecx, 0xff
cmp ecx, edx
ja 0x463ae2
mov dl, byte [esp + 0x24]
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
and ebx, 0xff
cmp ebx, ecx
jbe 0x463af6
mov al, cl
mov ecx, dword [esp + 0x28]
xor bx, bx
mov bl, al
movzx ax, byte [esp + 0x1c]
movzx dx, dl
shl ebx, cl
mov ecx, ebp
shl edx, cl
mov ecx, edi
shl eax, cl
or ebx, edx
mov edx, dword [esp + 0x2c]
add edx, 2
or ebx, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], edx
mov word [eax], bx
add eax, 2
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x34]
dec eax
mov dword [esp + 0x34], eax
jne 0x46398d
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x14]
add eax, ecx
jmp 0x464557
cmp cx, 0xc2
je 0x463b60
cmp cx, 0xc3
jne 0x4645b5
and ecx, 0xffff
sub ecx, 0xc2
je 0x463b7a
dec ecx
jne 0x463b85
mov ecx, dword [esp + 0x1c0]
jmp 0x463b81
mov ecx, dword [esp + 0x1bc]
mov dword [esp + 0x7c], ecx
inc eax
xor ebp, ebp
mov ecx, edi
mov bp, word [edx + eax*2]
inc eax
add edi, ebp
mov dword [esp + 0x54], ebp
cmp ebx, edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x5c], edi
jg 0x464555
mov ebp, dword [esp + 0x110]
cmp ebp, ecx
jl 0x464551
cmp ecx, ebx
jge 0x463ef0
mov ebp, ebx
sub edi, ebx
sub ebp, ecx
add eax, ebp
test edi, edi
mov dword [esp + 0x14], eax
jle 0x463ed7
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x1a4]
and eax, 0xffff
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x68]
add eax, ecx
mov ecx, dword [esp + 0x1a0]
imul eax, dword [esp + 0x74]
add eax, ebx
mov dword [esp + 0x64], edi
add eax, ecx
mov ecx, dword [esp + 0x70]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x30], eax
lea edx, [edx + ecx*2]
mov dword [esp + 0x54], edx
mov eax, dword [esi + 0x74]
mov ebx, dword [esp + 0x58]
xor edx, edx
and ebx, eax
mov dl, byte [esi + 0x69]
mov edi, dword [esi + 0x70]
mov ecx, edx
mov dword [esp + 0x2c], edx
shr ebx, cl
xor ecx, ecx
mov dword [esp + 0x20], eax
mov cl, byte [esi + 0x68]
mov dword [esp + 0xd4], 0
mov ebp, ecx
mov byte [esp + 0x3c], bl
mov ebx, dword [esp + 0x58]
and ebx, edi
mov dword [esp + 0x34], ebp
mov ebp, dword [esi + 0x6c]
shr ebx, cl
xor ecx, ecx
mov cl, byte [esi + 0x67]
mov dword [esp + 0x28], ecx
mov byte [esp + 0x4c], bl
mov ebx, dword [esp + 0x58]
and ebx, ebp
shr ebx, cl
mov ecx, dword [esp + 0x54]
mov byte [esp + 0x38], bl
mov bx, word [ecx]
and ebx, 0xffff
mov ecx, edx
mov edx, eax
and eax, ebx
shr edx, cl
shr eax, cl
mov dword [esp + 0xd0], edx
mov dword [esp + 0x20], edx
fild qword [esp + 0xd0]
and eax, 0xff
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x3c]
fild dword [esp + 0x10]
and eax, 0xff
mov dword [esp + 0x10], eax
fdiv st(1)
fimul dword [esp + 0x10]
call fcn.00468520
mov ecx, dword [esp + 0x34]
mov byte [esp + 0x3c], al
mov eax, edi
and edi, ebx
shr eax, cl
shr edi, cl
mov dword [esp + 0x8c], 0
mov ecx, dword [esp + 0x4c]
and ecx, 0xff
mov dword [esp + 0x88], eax
mov dword [esp + 0x40], eax
fild qword [esp + 0x88]
and edi, 0xff
mov dword [esp + 0x10], edi
fstp dword [esp + 0x6c]
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
fdiv dword [esp + 0x6c]
fimul dword [esp + 0x10]
call fcn.00468520
mov ecx, dword [esp + 0x28]
mov byte [esp + 0x4c], al
mov eax, ebp
mov dword [esp + 0x9c], 0
shr eax, cl
mov dword [esp + 0x98], eax
mov dword [esp + 0x48], eax
fild qword [esp + 0x98]
fstp dword [esp + 0x50]
and ebp, ebx
mov edx, dword [esp + 0x38]
shr ebp, cl
and edx, 0xff
and ebp, 0xff
mov dword [esp + 0x10], ebp
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fdiv dword [esp + 0x50]
fimul dword [esp + 0x10]
call fcn.00468520
mov edx, dword [esp + 0x20]
mov byte [esp + 0x38], al
mov eax, dword [esp + 0x3c]
mov ecx, eax
and ecx, 0xff
cmp ecx, edx
jbe 0x463d95
mov byte [esp + 0x3c], dl
mov eax, dword [esp + 0x3c]
mov ebp, dword [esp + 0x4c]
mov ecx, dword [esp + 0x40]
mov edx, ebp
and edx, 0xff
cmp edx, ecx
jbe 0x463db1
mov byte [esp + 0x4c], cl
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x48]
mov edx, edi
and edx, 0xff
cmp edx, ecx
jbe 0x463dcd
mov byte [esp + 0x38], cl
mov edi, dword [esp + 0x38]
and eax, 0xff
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fld st(0)
fdiv st(2)
fmul st(1)
fmul dword [0x476c50]
fadd st(1)
call fcn.00468520
fstp st(0)
and ebp, 0xff
mov byte [esp + 0x1c], al
fstp st(0)
mov dword [esp + 0x10], ebp
fild dword [esp + 0x10]
fld st(0)
fdiv dword [esp + 0x6c]
fmul st(1)
fmul dword [0x476c50]
fadd st(1)
call fcn.00468520
and edi, 0xff
mov bl, al
fstp st(0)
mov dword [esp + 0x10], edi
mov byte [esp + 0x24], bl
fild dword [esp + 0x10]
fld st(0)
fdiv dword [esp + 0x50]
fmul st(1)
fmul dword [0x476c50]
fadd st(1)
call fcn.00468520
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
and ecx, 0xff
mov byte [esp + 0x44], al
cmp ecx, edx
fstp st(0)
ja 0x463e5f
mov dl, byte [esp + 0x1c]
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x40]
and ecx, 0xff
cmp ecx, edi
jbe 0x463e75
mov bl, byte [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
and ecx, 0xff
cmp ecx, edi
jbe 0x463e8b
mov al, byte [esp + 0x48]
mov ecx, dword [esp + 0x28]
movzx di, al
xor ax, ax
shl edi, cl
mov ecx, dword [esp + 0x34]
mov al, bl
movzx dx, dl
shl eax, cl
mov ecx, dword [esp + 0x2c]
shl edx, cl
or edi, eax
mov eax, dword [esp + 0x30]
add eax, 2
or edi, edx
mov edx, dword [esp + 0x54]
mov word [eax - 2], di
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x64]
add edx, 2
dec eax
mov dword [esp + 0x54], edx
mov dword [esp + 0x64], eax
jne 0x463c18
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x14]
sub eax, edx
add ecx, eax
mov dword [esp + 0x14], ecx
jmp 0x46455b
cmp ecx, ebp
jg 0x464227
cmp ebp, edi
jge 0x464227
mov eax, ebp
sub eax, ecx
test eax, eax
jle 0x464218
mov edx, dword [esp + 0x7c]
mov edi, dword [esp + 0x1a4]
and edx, 0xffff
mov dword [esp + 0x10], eax
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x68]
add edx, edi
imul edx, dword [esp + 0x74]
add edx, ecx
mov ecx, dword [esp + 0x1a0]
add edx, ecx
mov ecx, dword [esp + 0x70]
lea edx, [ecx + edx*2]
mov ecx, dword [esp + 0x1b0]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x14]
lea ecx, [ecx + edx*2]
mov dword [esp + 0x30], ecx
mov eax, dword [esi + 0x74]
mov ebx, dword [esp + 0x58]
xor edx, edx
and ebx, eax
mov dl, byte [esi + 0x69]
mov edi, dword [esi + 0x70]
mov ecx, edx
mov dword [esp + 0x2c], edx
shr ebx, cl
xor ecx, ecx
mov dword [esp + 0x20], eax
mov cl, byte [esi + 0x68]
mov dword [esp + 0xac], 0
mov ebp, ecx
mov byte [esp + 0x3c], bl
mov ebx, dword [esp + 0x58]
and ebx, edi
mov dword [esp + 0x34], ebp
mov ebp, dword [esi + 0x6c]
shr ebx, cl
xor ecx, ecx
mov cl, byte [esi + 0x67]
mov dword [esp + 0x28], ecx
mov byte [esp + 0x4c], bl
mov ebx, dword [esp + 0x58]
and ebx, ebp
shr ebx, cl
mov ecx, dword [esp + 0x30]
mov byte [esp + 0x38], bl
mov bx, word [ecx]
and ebx, 0xffff
mov ecx, edx
mov edx, eax
and eax, ebx
shr edx, cl
shr eax, cl
mov dword [esp + 0xa8], edx
mov dword [esp + 0x20], edx
fild qword [esp + 0xa8]
and eax, 0xff
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x3c]
fild dword [esp + 0x50]
and eax, 0xff
mov dword [esp + 0x50], eax
fdiv st(1)
fimul dword [esp + 0x50]
call fcn.00468520
mov ecx, dword [esp + 0x34]
mov byte [esp + 0x3c], al
mov eax, edi
and edi, ebx
shr eax, cl
shr edi, cl
mov dword [esp + 0xbc], 0
mov ecx, dword [esp + 0x4c]
and ecx, 0xff
mov dword [esp + 0xb8], eax
mov dword [esp + 0x40], eax
fild qword [esp + 0xb8]
and edi, 0xff
mov dword [esp + 0x50], edi
fstp dword [esp + 0x6c]
fild dword [esp + 0x50]
mov dword [esp + 0x50], ecx
fdiv dword [esp + 0x6c]
fimul dword [esp + 0x50]
call fcn.00468520
mov ecx, dword [esp + 0x28]
mov byte [esp + 0x4c], al
mov eax, ebp
mov dword [esp + 0xcc], 0
shr eax, cl
mov dword [esp + 0xc8], eax
mov dword [esp + 0x48], eax
fild qword [esp + 0xc8]
fstp dword [esp + 0x50]
and ebp, ebx
mov edx, dword [esp + 0x38]
shr ebp, cl
and edx, 0xff
and ebp, 0xff
mov dword [esp + 0x18], ebp
fild dword [esp + 0x18]
mov dword [esp + 0x18], edx
fdiv dword [esp + 0x50]
fimul dword [esp + 0x18]
call fcn.00468520
mov edx, dword [esp + 0x20]
mov byte [esp + 0x38], al
mov eax, dword [esp + 0x3c]
mov ecx, eax
and ecx, 0xff
cmp ecx, edx
jbe 0x4640d5
mov byte [esp + 0x3c], dl
mov eax, dword [esp + 0x3c]
mov ebp, dword [esp + 0x4c]
mov ecx, dword [esp + 0x40]
mov edx, ebp
and edx, 0xff
cmp edx, ecx
jbe 0x4640f1
mov byte [esp + 0x4c], cl
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x48]
mov edx, edi
and edx, 0xff
cmp edx, ecx
jbe 0x46410d
mov byte [esp + 0x38], cl
mov edi, dword [esp + 0x38]
and eax, 0xff
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fld st(0)
fdiv st(2)
fmul st(1)
fmul dword [0x476c50]
fadd st(1)
call fcn.00468520
fstp st(0)
and ebp, 0xff
mov byte [esp + 0x1c], al
fstp st(0)
mov dword [esp + 0x18], ebp
fild dword [esp + 0x18]
fld st(0)
fdiv dword [esp + 0x6c]
fmul st(1)
fmul dword [0x476c50]
fadd st(1)
call fcn.00468520
and edi, 0xff
mov bl, al
fstp st(0)
mov dword [esp + 0x18], edi
mov byte [esp + 0x24], bl
fild dword [esp + 0x18]
fld st(0)
fdiv dword [esp + 0x50]
fmul st(1)
fmul dword [0x476c50]
fadd st(1)
call fcn.00468520
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
and ecx, 0xff
mov byte [esp + 0x44], al
cmp ecx, edx
mov cl, dl
fstp st(0)
ja 0x4641a1
mov cl, byte [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x40]
and edx, 0xff
cmp edx, edi
jbe 0x4641b7
mov bl, byte [esp + 0x40]
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
and edx, 0xff
cmp edx, edi
jbe 0x4641cd
mov al, byte [esp + 0x48]
xor dx, dx
mov dl, cl
mov ecx, dword [esp + 0x28]
movzx di, bl
shl edx, cl
mov ecx, dword [esp + 0x34]
movzx ax, al
shl edi, cl
mov ecx, dword [esp + 0x2c]
shl eax, cl
or edx, edi
or edx, eax
mov eax, dword [esp + 0x64]
mov word [eax], dx
mov edx, dword [esp + 0x30]
add eax, 2
add edx, 2
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x10]
dec eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x10], eax
jne 0x463f58
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x14]
add eax, ecx
jmp 0x464557
mov eax, dword [esp + 0x54]
test eax, eax
jle 0x464541
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x68]
and eax, 0xffff
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x1a4]
add edx, eax
mov eax, dword [esp + 0x1a0]
imul edx, dword [esp + 0x74]
add edx, ecx
mov ecx, dword [esp + 0x70]
add edx, eax
mov eax, dword [esp + 0x1b0]
lea edx, [ecx + edx*2]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], edx
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x30], edx
mov dword [esp + 0x64], eax
mov eax, dword [esi + 0x74]
mov ebx, dword [esp + 0x58]
xor edx, edx
and ebx, eax
mov dl, byte [esi + 0x69]
mov edi, dword [esi + 0x70]
mov ecx, edx
mov dword [esp + 0x2c], edx
shr ebx, cl
xor ecx, ecx
mov dword [esp + 0x20], eax
mov cl, byte [esi + 0x68]
mov dword [esp + 0xdc], 0
mov ebp, ecx
mov byte [esp + 0x3c], bl
mov ebx, dword [esp + 0x58]
and ebx, edi
mov dword [esp + 0x34], ebp
mov ebp, dword [esi + 0x6c]
shr ebx, cl
xor ecx, ecx
mov cl, byte [esi + 0x67]
mov dword [esp + 0x28], ecx
mov byte [esp + 0x4c], bl
mov ebx, dword [esp + 0x58]
and ebx, ebp
shr ebx, cl
mov ecx, dword [esp + 0x30]
mov byte [esp + 0x38], bl
mov bx, word [ecx]
and ebx, 0xffff
mov ecx, edx
mov edx, eax
and eax, ebx
shr edx, cl
shr eax, cl
mov dword [esp + 0xd8], edx
mov dword [esp + 0x20], edx
fild qword [esp + 0xd8]
and eax, 0xff
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x3c]
fild dword [esp + 0x18]
and eax, 0xff
mov dword [esp + 0x18], eax
fdiv st(1)
fimul dword [esp + 0x18]
call fcn.00468520
mov ecx, dword [esp + 0x34]
mov byte [esp + 0x3c], al
mov eax, edi
and edi, ebx
shr eax, cl
shr edi, cl
mov dword [esp + 0xec], 0
mov ecx, dword [esp + 0x4c]
and ecx, 0xff
mov dword [esp + 0xe8], eax
mov dword [esp + 0x40], eax
fild qword [esp + 0xe8]
and edi, 0xff
mov dword [esp + 0x18], edi
fstp dword [esp + 0x6c]
fild dword [esp + 0x18]
mov dword [esp + 0x18], ecx
fdiv dword [esp + 0x6c]
fimul dword [esp + 0x18]
call fcn.00468520
mov ecx, dword [esp + 0x28]
mov byte [esp + 0x4c], al
mov eax, ebp
mov dword [esp + 0xfc], 0
shr eax, cl
mov dword [esp + 0xf8], eax
mov dword [esp + 0x48], eax
fild qword [esp + 0xf8]
fstp dword [esp + 0x50]
and ebp, ebx
mov edx, dword [esp + 0x38]
shr ebp, cl
and edx, 0xff
and ebp, 0xff
mov dword [esp + 0x18], ebp
fild dword [esp + 0x18]
mov dword [esp + 0x18], edx
fdiv dword [esp + 0x50]
fimul dword [esp + 0x18]
call fcn.00468520
mov edx, dword [esp + 0x20]
mov byte [esp + 0x38], al
mov eax, dword [esp + 0x3c]
mov ecx, eax
and ecx, 0xff
cmp ecx, edx
jbe 0x4643ff
mov byte [esp + 0x3c], dl
mov eax, dword [esp + 0x3c]
mov ebp, dword [esp + 0x4c]
mov ecx, dword [esp + 0x40]
mov edx, ebp
and edx, 0xff
cmp edx, ecx
jbe 0x46441b
mov byte [esp + 0x4c], cl
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x48]
mov edx, edi
and edx, 0xff
cmp edx, ecx
jbe 0x464437
mov byte [esp + 0x38], cl
mov edi, dword [esp + 0x38]
and eax, 0xff
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fld st(0)
fdiv st(2)
fmul st(1)
fmul dword [0x476c50]
fadd st(1)
call fcn.00468520
fstp st(0)
and ebp, 0xff
mov byte [esp + 0x1c], al
fstp st(0)
mov dword [esp + 0x18], ebp
fild dword [esp + 0x18]
fld st(0)
fdiv dword [esp + 0x6c]
fmul st(1)
fmul dword [0x476c50]
fadd st(1)
call fcn.00468520
and edi, 0xff
mov bl, al
fstp st(0)
mov dword [esp + 0x18], edi
mov byte [esp + 0x24], bl
fild dword [esp + 0x18]
fld st(0)
fdiv dword [esp + 0x50]
fmul st(1)
fmul dword [0x476c50]
fadd st(1)
call fcn.00468520
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
and ecx, 0xff
mov byte [esp + 0x44], al
cmp ecx, edx
fstp st(0)
ja 0x4644c9
mov dl, byte [esp + 0x1c]
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x40]
and ecx, 0xff
cmp ecx, edi
jbe 0x4644df
mov bl, byte [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
and ecx, 0xff
cmp ecx, edi
jbe 0x4644f5
mov al, byte [esp + 0x48]
mov ecx, dword [esp + 0x28]
movzx di, al
xor ax, ax
shl edi, cl
mov ecx, dword [esp + 0x34]
mov al, bl
movzx dx, dl
shl eax, cl
mov ecx, dword [esp + 0x2c]
shl edx, cl
or edi, eax
mov eax, dword [esp + 0x10]
add eax, 2
or edi, edx
mov edx, dword [esp + 0x30]
mov word [eax - 2], di
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x64]
add edx, 2
dec eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x64], eax
jne 0x464282
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x14]
add ecx, eax
mov dword [esp + 0x14], ecx
jmp 0x46455b
mov ebp, dword [esp + 0x54]
add eax, ebp
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x78]
cmp ecx, eax
jl 0x4634b0
mov edx, dword [esp + 0x1b0]
mov edi, dword [esp + 0x68]
mov ebx, dword [esp + 0x114]
inc eax
inc edi
cmp edi, ebx
mov ecx, eax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x68], edi
jl 0x46348b
mov esi, dword [esi + 0x1c]
push 0
push esi
mov eax, dword [esi]
call dword [eax + 0x80]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x18c
ret 0x24
mov esi, dword [esi + 0x1c]
push 0
push esi
mov edx, dword [esi]
call dword [edx + 0x80]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x18c
ret 0x24