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

Disassembly:
mov eax, dword [esp + 0xc]
sub esp, 0x134
test eax, eax
push ebx
push ebp
push esi
push edi
mov ebp, ecx
je 0x45fd3a
mov ebx, dword [esp + 0x154]
test ebx, ebx
je 0x45fd3a
mov edx, dword [eax + 8]
mov ecx, dword [eax]
mov esi, dword [eax + 0xc]
mov eax, dword [eax + 4]
mov dword [esp + 0x14], esi
sub esi, eax
mov edi, dword [ebp + 0x1c]
mov dword [esp + 0x30], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x6c], edx
mov esi, eax
sub edx, ecx
mov dword [esp + 0x2c], ecx
xor eax, eax
mov ax, word [ebp + 0x58]
xor ecx, ecx
mov cx, word [ebp + 0x5a]
dec eax
dec ecx
mov dword [esp + 0x4c], edx
test edi, edi
mov dword [esp + 0x64], esi
je 0x45fd3a
mov edi, dword [esp + 0x148]
test edi, edi
jge 0x45f371
mov esi, edi
mov edi, dword [esp + 0x2c]
neg esi
cmp edi, esi
jge 0x45f358
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x2c]
sub esi, edi
mov edi, dword [esp + 0x148]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x64]
lea edx, [edx + edi - 1]
cmp edx, eax
jle 0x45f384
sub eax, dword [esp + 0x2c]
sub eax, edi
inc eax
mov dword [esp + 0x4c], eax
mov edi, dword [esp + 0x14c]
test edi, edi
jge 0x45f3a1
mov eax, edi
neg eax
cmp esi, eax
jge 0x45f399
mov esi, eax
mov edx, dword [esp + 0x14]
sub edx, esi
jmp 0x45f3a5
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x30]
lea eax, [eax + edi - 1]
cmp eax, ecx
jle 0x45f3b8
sub ecx, esi
sub ecx, edi
inc ecx
mov edx, ecx
mov eax, dword [esp + 0x4c]
test eax, eax
jle 0x45fd0a
test edx, edx
jle 0x45fd0a
mov ecx, dword [esp + 0x2c]
lea edi, [esp + 0xc8]
add ecx, eax
xor eax, eax
mov dword [esp + 0x78], ecx
mov ecx, 0x1f
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 0x1c]
add edx, esi
xor edi, edi
mov dword [esp + 0x7c], edx
push edi
lea edx, [esp + 0xcc]
push 1
mov dword [esp + 0xd0], 0x7c
mov ecx, dword [eax]
push edx
push edi
push eax
call dword [ecx + 0x64]
test eax, eax
jl 0x45fd3a
mov eax, dword [esp + 0xd8]
mov edx, dword [esp + 0xec]
sar eax, 1
mov dword [esp + 0x6c], eax
xor eax, eax
test esi, esi
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], edi
jle 0x45f459
mov dword [esp + 0x54], esi
xor ecx, ecx
mov cx, word [ebx + eax*2]
mov eax, dword [esp + 0x58]
lea eax, [eax + ecx + 1]
mov ecx, dword [esp + 0x54]
dec ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], ecx
jne 0x45f43c
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x64], esi
cmp esi, ecx
jge 0x45fd0a
mov ecx, dword [esp + 0x14c]
add ecx, esi
mov esi, dword [esp + 0x2c]
imul ecx, dword [esp + 0x6c]
mov dword [esp + 0x50], ecx
add ecx, esi
add ecx, dword [esp + 0x148]
lea edx, [edx + ecx*2]
mov dword [esp + 0x54], edx
jmp 0x45f495
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x58]
xor edx, edx
mov dx, word [ebx + eax*2]
add ecx, edx
inc eax
cmp eax, ecx
mov dword [esp + 0x58], ecx
jge 0x45fccc
mov cx, word [ebx + eax*2]
cmp cx, 0xc0
jne 0x45f4c8
inc eax
xor ecx, ecx
mov cx, word [ebx + eax*2]
inc eax
add edi, ecx
jmp 0x45fcc0
cmp cx, 0xc1
jne 0x45f596
mov ecx, dword [esp + 0x2c]
inc eax
xor edx, edx
mov esi, edi
mov dx, word [ebx + eax*2]
inc eax
add edi, edx
mov dword [esp + 0x18], esi
cmp ecx, edi
mov dword [esp + 0x3c], edi
jg 0x45f58f
cmp dword [esp + 0x78], esi
jl 0x45f58f
mov ecx, dword [esp + 0x2c]
cmp esi, ecx
jge 0x45f53d
sub ecx, esi
add eax, ecx
mov ecx, edi
mov edi, dword [esp + 0x2c]
sub ecx, edi
mov edi, dword [esp + 0x54]
shl ecx, 1
mov edx, ecx
lea esi, [ebx + eax*2]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x3c]
sub ecx, esi
add eax, ecx
jmp 0x45fcc0
mov ecx, dword [esp + 0x78]
cmp esi, ecx
jg 0x45f58a
cmp ecx, edi
jge 0x45f58a
sub ecx, esi
shl ecx, 1
mov edi, dword [esp + 0x50]
lea esi, [ebx + eax*2]
mov ebx, dword [esp + 0x18]
add edi, ebx
mov ebx, dword [esp + 0x148]
add edi, ebx
mov ebx, dword [esp + 0x5c]
lea edi, [ebx + edi*2]
mov ebx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
mov ebx, dword [esp + 0x154]
and ecx, 3
add eax, edx
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x3c]
jmp 0x45fcc0
lea ecx, [edx + edx]
jmp 0x45f54d
add eax, edx
jmp 0x45fcc0
cmp cx, 0xc2
je 0x45f5a8
cmp cx, 0xc3
jne 0x45fd2b
and ecx, 0xffff
sub ecx, 0xc2
je 0x45f5c6
dec ecx
jne 0x45f5d1
mov edx, dword [esp + 0x15c]
mov dword [esp + 0x68], edx
jmp 0x45f5d1
mov ecx, dword [esp + 0x158]
mov dword [esp + 0x68], ecx
mov edx, dword [esp + 0x2c]
inc eax
xor esi, esi
mov ecx, edi
mov si, word [ebx + eax*2]
inc eax
add edi, esi
mov dword [esp + 0x14], esi
cmp edx, edi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x3c], edi
jg 0x45fcbe
cmp dword [esp + 0x78], ecx
jl 0x45fcbe
mov edx, dword [esp + 0x2c]
cmp ecx, edx
jge 0x45f852
mov esi, edx
sub esi, ecx
add eax, esi
mov esi, edi
sub esi, edx
mov dword [esp + 0x4c], eax
test esi, esi
jle 0x45f847
mov edi, dword [esp + 0x50]
mov edx, dword [esp + 0x68]
add edi, ecx
mov ecx, dword [esp + 0x148]
and edx, 0xffff
add edi, ecx
mov ecx, dword [esp + 0x5c]
lea eax, [ebx + eax*2]
mov dword [esp + 0x60], edx
mov dword [esp + 0x18], eax
lea ecx, [ecx + edi*2]
mov dword [esp + 0x40], esi
mov dword [esp + 0x30], ecx
jmp 0x45f65a
mov edx, dword [esp + 0x60]
mov eax, dword [ebp + 0x74]
xor ecx, ecx
mov cl, byte [ebp + 0x69]
mov ebx, edx
and ebx, eax
mov esi, ecx
shr ebx, cl
xor ecx, ecx
mov dword [esp + 0x34], esi
mov esi, dword [ebp + 0x70]
mov cl, byte [ebp + 0x68]
mov edi, ecx
mov dword [esp + 0x1c], eax
mov byte [esp + 0x24], bl
mov ebx, edx
and ebx, esi
mov dword [esp + 0x48], edi
mov edi, dword [ebp + 0x6c]
mov dword [esp + 0x94], 0
shr ebx, cl
xor ecx, ecx
and edx, edi
mov cl, byte [ebp + 0x67]
shr edx, cl
mov byte [esp + 0x20], bl
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x34]
mov byte [esp + 0x38], dl
mov edx, dword [esp + 0x18]
mov bx, word [edx]
mov edx, eax
and ebx, 0xffff
and eax, ebx
shr eax, cl
shr edx, cl
mov ecx, dword [esp + 0x24]
and ecx, 0xff
and eax, 0xff
mov dword [esp + 0x14], eax
mov eax, edx
fild dword [esp + 0x14]
mov dword [esp + 0x90], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], edx
fidiv dword [esp + 0x90]
fimul dword [esp + 0x14]
call fcn.00468520
mov ecx, dword [esp + 0x48]
mov byte [esp + 0x24], al
mov eax, esi
and esi, ebx
shr esi, cl
shr eax, cl
mov dword [esp + 0xbc], 0
mov edx, dword [esp + 0x20]
and edx, 0xff
and esi, 0xff
mov dword [esp + 0x14], esi
mov dword [esp + 0xb8], eax
fild dword [esp + 0x14]
mov dword [esp + 0x14], edx
mov dword [esp + 0x44], eax
fidiv dword [esp + 0xb8]
fimul dword [esp + 0x14]
call fcn.00468520
mov esi, dword [esp + 0x28]
mov byte [esp + 0x20], al
mov eax, edi
mov ecx, esi
and edi, ebx
shr edi, cl
shr eax, cl
and edi, 0xff
mov dword [esp + 0x14], edi
mov dword [esp + 0x28], eax
fild dword [esp + 0x14]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], 0
mov eax, dword [esp + 0x38]
fidiv dword [esp + 0x80]
and eax, 0xff
mov dword [esp + 0x14], eax
fimul dword [esp + 0x14]
call fcn.00468520
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
and edx, 0xff
mov byte [esp + 0x38], al
cmp edx, ecx
mov bl, cl
ja 0x45f7bf
mov bl, byte [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x44]
and ecx, 0xff
cmp ecx, edx
ja 0x45f7d5
mov dl, byte [esp + 0x20]
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x28]
and ecx, 0xff
cmp ecx, edi
jbe 0x45f7eb
mov al, byte [esp + 0x28]
movzx di, al
mov ecx, esi
xor ax, ax
movzx dx, dl
shl edi, cl
mov ecx, dword [esp + 0x48]
mov al, bl
shl edx, cl
mov ecx, dword [esp + 0x34]
shl eax, cl
or edi, edx
mov edx, dword [esp + 0x18]
add edx, 2
or edi, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x18], edx
mov word [eax], di
add eax, 2
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x40]
dec eax
mov dword [esp + 0x40], eax
jne 0x45f656
mov ebx, dword [esp + 0x154]
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x2c]
mov ecx, edi
sub ecx, edx
add eax, ecx
jmp 0x45fcc0
mov edx, dword [esp + 0x78]
cmp ecx, edx
jg 0x45fa90
cmp edx, edi
jge 0x45fa90
sub edx, ecx
test edx, edx
mov dword [esp + 0x30], edx
jle 0x45fcbe
mov esi, dword [esp + 0x50]
mov edx, dword [esp + 0x68]
add esi, ecx
mov ecx, dword [esp + 0x148]
and edx, 0xffff
add esi, ecx
mov ecx, dword [esp + 0x5c]
lea eax, [ebx + eax*2]
mov dword [esp + 0x60], edx
mov dword [esp + 0x18], eax
lea ecx, [ecx + esi*2]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x30], ecx
jmp 0x45f8b1
mov edx, dword [esp + 0x60]
mov eax, dword [ebp + 0x74]
xor ecx, ecx
mov cl, byte [ebp + 0x69]
mov ebx, edx
and ebx, eax
mov esi, ecx
shr ebx, cl
xor ecx, ecx
mov dword [esp + 0x34], esi
mov esi, dword [ebp + 0x70]
mov cl, byte [ebp + 0x68]
mov edi, ecx
mov dword [esp + 0x1c], eax
mov byte [esp + 0x24], bl
mov ebx, edx
and ebx, esi
mov dword [esp + 0x48], edi
mov edi, dword [ebp + 0x6c]
mov dword [esp + 0xb4], 0
shr ebx, cl
xor ecx, ecx
and edx, edi
mov cl, byte [ebp + 0x67]
shr edx, cl
mov byte [esp + 0x20], bl
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x34]
mov byte [esp + 0x38], dl
mov edx, dword [esp + 0x18]
mov bx, word [edx]
mov edx, eax
and ebx, 0xffff
and eax, ebx
shr eax, cl
shr edx, cl
mov ecx, dword [esp + 0x24]
and ecx, 0xff
and eax, 0xff
mov dword [esp + 0x44], eax
mov eax, edx
fild dword [esp + 0x44]
mov dword [esp + 0xb0], eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x1c], edx
fidiv dword [esp + 0xb0]
fimul dword [esp + 0x44]
call fcn.00468520
mov ecx, dword [esp + 0x48]
mov byte [esp + 0x24], al
mov eax, esi
and esi, ebx
shr esi, cl
shr eax, cl
mov dword [esp + 0xa4], 0
mov edx, dword [esp + 0x20]
and edx, 0xff
and esi, 0xff
mov dword [esp + 0x10], esi
mov dword [esp + 0xa0], eax
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
mov dword [esp + 0x44], eax
fidiv dword [esp + 0xa0]
fimul dword [esp + 0x10]
call fcn.00468520
mov esi, dword [esp + 0x28]
mov byte [esp + 0x20], al
mov eax, edi
mov ecx, esi
and edi, ebx
shr edi, cl
shr eax, cl
and edi, 0xff
mov dword [esp + 0x10], edi
mov dword [esp + 0x28], eax
fild dword [esp + 0x10]
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], 0
mov eax, dword [esp + 0x38]
fidiv dword [esp + 0xc0]
and eax, 0xff
mov dword [esp + 0x10], eax
fimul dword [esp + 0x10]
call fcn.00468520
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
and edx, 0xff
mov byte [esp + 0x38], al
cmp edx, ecx
mov bl, cl
ja 0x45fa16
mov bl, byte [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x44]
and ecx, 0xff
cmp ecx, edx
ja 0x45fa2c
mov dl, byte [esp + 0x20]
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x28]
and ecx, 0xff
cmp ecx, edi
jbe 0x45fa42
mov al, byte [esp + 0x28]
movzx di, al
mov ecx, esi
xor ax, ax
movzx dx, dl
shl edi, cl
mov ecx, dword [esp + 0x48]
mov al, bl
shl edx, cl
mov ecx, dword [esp + 0x34]
shl eax, cl
or edi, edx
mov edx, dword [esp + 0x18]
add edx, 2
or edi, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x18], edx
mov word [eax], di
add eax, 2
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
dec eax
mov dword [esp + 0x30], eax
jne 0x45f8ad
jmp 0x45fcab
test esi, esi
jle 0x45fcbe
mov edi, dword [esp + 0x50]
mov edx, dword [esp + 0x68]
add edi, ecx
mov ecx, dword [esp + 0x148]
and edx, 0xffff
add edi, ecx
mov ecx, dword [esp + 0x5c]
lea eax, [ebx + eax*2]
mov dword [esp + 0x60], edx
mov dword [esp + 0x18], eax
lea ecx, [ecx + edi*2]
mov dword [esp + 0x30], esi
mov dword [esp + 0x40], ecx
jmp 0x45fad1
mov edx, dword [esp + 0x60]
mov eax, dword [ebp + 0x74]
xor ecx, ecx
mov cl, byte [ebp + 0x69]
mov ebx, edx
and ebx, eax
mov esi, ecx
shr ebx, cl
xor ecx, ecx
mov dword [esp + 0x34], esi
mov esi, dword [ebp + 0x70]
mov cl, byte [ebp + 0x68]
mov edi, ecx
mov dword [esp + 0x1c], eax
mov byte [esp + 0x24], bl
mov ebx, edx
and ebx, esi
mov dword [esp + 0x48], edi
mov edi, dword [ebp + 0x6c]
mov dword [esp + 0x8c], 0
shr ebx, cl
xor ecx, ecx
and edx, edi
mov cl, byte [ebp + 0x67]
shr edx, cl
mov byte [esp + 0x20], bl
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x34]
mov byte [esp + 0x38], dl
mov edx, dword [esp + 0x18]
mov bx, word [edx]
mov edx, eax
and ebx, 0xffff
and eax, ebx
shr eax, cl
shr edx, cl
mov ecx, dword [esp + 0x24]
and ecx, 0xff
and eax, 0xff
mov dword [esp + 0x10], eax
mov eax, edx
fild dword [esp + 0x10]
mov dword [esp + 0x88], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], edx
fidiv dword [esp + 0x88]
fimul dword [esp + 0x10]
call fcn.00468520
mov ecx, dword [esp + 0x48]
mov byte [esp + 0x24], al
mov eax, esi
and esi, ebx
shr esi, cl
shr eax, cl
mov dword [esp + 0x9c], 0
mov edx, dword [esp + 0x20]
and edx, 0xff
and esi, 0xff
mov dword [esp + 0x10], esi
mov dword [esp + 0x98], eax
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
mov dword [esp + 0x44], eax
fidiv dword [esp + 0x98]
fimul dword [esp + 0x10]
call fcn.00468520
mov esi, dword [esp + 0x28]
mov byte [esp + 0x20], al
mov eax, edi
mov ecx, esi
and edi, ebx
shr edi, cl
shr eax, cl
and edi, 0xff
mov dword [esp + 0x10], edi
mov dword [esp + 0x28], eax
fild dword [esp + 0x10]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], 0
mov eax, dword [esp + 0x38]
fidiv dword [esp + 0xa8]
and eax, 0xff
mov dword [esp + 0x10], eax
fimul dword [esp + 0x10]
call fcn.00468520
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
and edx, 0xff
mov byte [esp + 0x38], al
cmp edx, ecx
mov bl, cl
ja 0x45fc36
mov bl, byte [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x44]
and ecx, 0xff
cmp ecx, edx
ja 0x45fc4c
mov dl, byte [esp + 0x20]
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x28]
and ecx, 0xff
cmp ecx, edi
jbe 0x45fc62
mov al, byte [esp + 0x28]
movzx di, al
mov ecx, esi
xor ax, ax
movzx dx, dl
shl edi, cl
mov ecx, dword [esp + 0x48]
mov al, bl
shl edx, cl
mov ecx, dword [esp + 0x34]
shl eax, cl
or edi, edx
mov edx, dword [esp + 0x18]
add edx, 2
or edi, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x18], edx
mov word [eax], di
add eax, 2
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
dec eax
mov dword [esp + 0x30], eax
jne 0x45facd
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x154]
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x3c]
add eax, esi
mov ecx, dword [esp + 0x58]
cmp eax, ecx
jl 0x45f4ae
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x54]
mov edx, dword [esp + 0x64]
inc ecx
mov dword [esp + 0x58], ecx
mov eax, ecx
mov ecx, dword [esp + 0x6c]
inc edx
add edi, ecx
add ecx, ecx
add esi, ecx
mov ecx, dword [esp + 0x7c]
cmp edx, ecx
mov dword [esp + 0x3c], 0
mov dword [esp + 0x64], edx
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], esi
jl 0x45f491
mov ebp, dword [ebp + 0x1c]
push 0
push ebp
mov edx, dword [ebp]
call dword [edx + 0x80]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x134
ret 0x18
mov ebp, dword [ebp + 0x1c]
push 0
push ebp
mov ecx, dword [ebp]
call dword [ecx + 0x80]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x134
ret 0x18