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

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x50013d
push eax
mov eax, 0x1364
mov dword fs:[0], esp
call fcn.004c2240
push ebx
push ebp
push esi
push edi
mov edi, 0x320
xor ebp, ebp
xor ecx, ecx
lea eax, [esp + 0xa8]
mov edx, edi
mov esi, 3
mov dword [eax - 0x24], esi
mov dword [eax], ecx
mov dword [eax - 4], ecx
mov dword [eax - 8], ecx
mov dword [eax - 0xc], ecx
mov dword [eax - 0x14], ecx
mov dword [eax - 0x18], ecx
mov dword [eax - 0x1c], ecx
mov dword [eax - 0x20], ecx
mov dword [eax - 0x10], edx
mov dword [eax + 4], edi
mov dword [eax + 8], ebp
sub edx, 8
inc ecx
add eax, 0x30
cmp edx, ebp
jge 0x45fb1a
push 0x88
call fcn.004dc5c3
add esp, 4
mov dword [esp + 0x40], eax
cmp eax, ebp
mov dword [esp + 0x137c], ebp
je 0x45fb73
mov ecx, eax
call fcn.00456c20
mov edi, eax
mov dword [esp + 0x3c], edi
jmp 0x45fb79
mov dword [esp + 0x3c], ebp
mov edi, ebp
mov esi, dword [esp + 0x1384]
push 0xffffffffffffffff
push 0x18
mov dword [esp + 0x1384], 0xffffffff
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
push ecx
push edx
mov ecx, edi
call fcn.00457640
mov eax, dword [esp + 0x84]
dec eax
cdq
sub eax, edx
mov edx, eax
mov eax, dword [edi + 0xc]
sar edx, 1
mov ecx, dword [eax + 8]
mov edi, dword [eax + 4]
mov dword [esp + 0x14], ecx
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x64], edx
mov dword [esp + 0x28], edi
mov esi, dword [ecx + 0x14]
mov ebx, dword [ecx + 0x18]
mov dword [esp + 0x20], esi
mov esi, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x30]
mov dword [esp + 0x1c], esi
mov esi, dword [eax + 0x18]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x18], esi
mov esi, dword [eax + 0x14]
mov eax, dword [eax + 0xc]
mov ecx, edx
mov dword [esp + 0x34], esi
and ecx, 0xffff
mov esi, edi
mov dword [esp + 0x4c], ebx
sub esi, ecx
mov dword [esp + 0x30], eax
cmp ecx, esi
mov dword [esp + 0x24], edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], esi
jge 0x45ff15
mov edi, dword [esp + 0x14]
sub edi, ecx
mov dword [esp + 0x74], edi
cmp ecx, edi
mov dword [esp + 0x60], edx
jge 0x45fef7
mov edx, dword [esp + 0x38]
mov dword [esp + 0x44], ecx
jmp 0x45fc43
mov ecx, dword [esp + 0x2c]
xor ebp, ebp
mov eax, dword [esp + 0x1388]
mov esi, dword [esp + 0x44]
mov dword [esp + 0x58], ebp
mov dword [esp + 0x54], ebp
mov edi, dword [eax + esi*4]
xor eax, eax
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x10], ebp
mov al, byte [edi + edx]
mov edi, eax
cmp edi, 0x64
jne 0x45fc74
mov edi, 0x63
jmp 0x45fc7c
test edi, edi
je 0x45fe77
lea eax, [edi + edi*2]
xor esi, esi
shl eax, 4
mov dword [esp + 0x48], esi
mov dword [esp + 0x6c], eax
mov ebp, dword [esp + eax + 0x84]
test ebp, ebp
jle 0x45fdc8
jmp 0x45fca5
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x2c]
test ebp, ebp
mov dword [esp + 0x50], 0
jle 0x45fdb3
and esi, 0xffff
mov dword [esp + 0x68], esi
sub esi, ecx
mov ecx, dword [esp + 0x1c]
add esi, edx
sar ecx, 3
imul esi, ecx
xor edx, edx
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x44]
mov ecx, edx
sub ecx, ebx
add ecx, eax
mov eax, dword [esp + 0x4c]
imul ecx, dword [esp + 0x20]
add ecx, esi
add ecx, eax
cmp dword [esp + 0x7c], 0
mov al, byte [ecx + 2]
mov bl, byte [ecx + 1]
mov cl, byte [ecx]
mov byte [esp + 0x78], al
mov byte [esp + 0x80], bl
mov byte [esp + 0x70], cl
je 0x45fd38
cmp al, 0x80
jne 0x45fd38
cmp bl, al
jne 0x45fd38
cmp cl, 0x81
jne 0x45fd38
mov eax, dword [esp + 0x64]
cmp word [esp + 0x48], ax
jne 0x45fd32
cmp word [esp + 0x50], ax
jne 0x45fd32
mov eax, ebp
imul eax, ebp
mov dword [esp + 0x10], eax
jmp 0x45fd94
inc dword [esp + 0x10]
jmp 0x45fd94
mov eax, ebp
lea ecx, [edi + edi*2]
imul eax, dword [esp + 0x68]
add edx, eax
mov eax, dword [esp + 0x70]
and eax, 0xff
mov ebx, dword [esp + 0x54]
lea edx, [edx + ecx*4]
mov ecx, dword [esp + edx*4 + 0x88]
mov edx, dword [esp + 0x5c]
imul eax, ecx
add edx, eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x80]
and edx, 0xff
and eax, 0xff
imul edx, ecx
imul eax, ecx
mov ecx, dword [esp + 0x58]
add ebx, edx
add ecx, eax
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ecx
mov edx, dword [esp + 0x50]
inc edx
mov dword [esp + 0x50], edx
and edx, 0xffff
cmp edx, ebp
jl 0x45fccf
mov esi, dword [esp + 0x48]
mov eax, dword [esp + 0x6c]
inc esi
mov ecx, esi
mov dword [esp + 0x48], esi
and ecx, 0xffff
cmp ecx, ebp
jl 0x45fc9d
mov edx, ebp
mov ecx, dword [esp + 0x10]
imul edx, ebp
cmp ecx, edx
jge 0x45fe26
mov eax, dword [esp + eax + 0x88]
lea esi, [edi + edi*2]
imul eax, ecx
lea edx, [edx + esi*4]
shl edx, 2
mov ecx, dword [esp + edx + 0x88]
mov esi, dword [esp + edx + 0x8c]
sub ecx, eax
mov eax, dword [esp + 0x58]
xor edx, edx
div ecx
xor edx, edx
mov edi, eax
mov eax, dword [esp + 0x54]
div ecx
xor edx, edx
add edi, esi
mov dword [esp + 0x10], edi
mov ebx, eax
mov eax, dword [esp + 0x5c]
div ecx
add ebx, esi
add eax, esi
test eax, eax
jge 0x45fe36
xor eax, eax
jmp 0x45fe42
mov ebx, 0x80
mov eax, 0x81
mov dword [esp + 0x10], ebx
jmp 0x45fe9c
cmp eax, 0xff
jle 0x45fe42
mov eax, 0xff
test ebx, ebx
jge 0x45fe4a
xor ebx, ebx
jmp 0x45fe57
cmp ebx, 0xff
jle 0x45fe57
mov ebx, 0xff
test edi, edi
jge 0x45fe65
mov dword [esp + 0x10], 0
jmp 0x45fe9c
cmp edi, 0xff
jle 0x45fe9c
mov dword [esp + 0x10], 0xff
jmp 0x45fe9c
mov ecx, dword [esp + 0x1c]
imul esi, dword [esp + 0x20]
sar ecx, 3
imul ecx, edx
add ebx, ecx
xor eax, eax
add esi, ebx
xor ebx, ebx
xor ecx, ecx
mov cl, byte [esi + 2]
mov al, byte [esi]
mov bl, byte [esi + 1]
mov dword [esp + 0x10], ecx
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x18]
imul ecx, dword [esp + 0x34]
sar esi, 3
imul esi, edx
add edi, esi
add ecx, edi
mov edi, dword [esp + 0x74]
mov byte [ecx], al
mov al, byte [esp + 0x10]
mov byte [ecx + 2], al
mov eax, dword [esp + 0x60]
inc eax
mov byte [ecx + 1], bl
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x60], eax
and eax, 0xffff
cmp eax, edi
mov dword [esp + 0x44], eax
jl 0x45fc3d
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x40]
xor ebp, ebp
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x24], eax
and eax, 0xffff
cmp eax, esi
mov dword [esp + 0x38], eax
jl 0x45fc27
mov edi, dword [esp + 0x28]
xor esi, esi
cmp edi, ebp
jle 0x45ff60
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x30]
sar edi, 3
sar ebp, 3
xor edx, edx
mov eax, edi
mov ecx, ebp
imul eax, edx
imul ecx, edx
mov edx, dword [esp + 0x18]
add eax, ebx
add ecx, edx
inc esi
mov dl, byte [eax]
mov byte [ecx], dl
mov dl, byte [eax + 1]
mov byte [ecx + 1], dl
mov al, byte [eax + 2]
mov edx, esi
mov byte [ecx + 2], al
mov eax, dword [esp + 0x28]
and edx, 0xffff
cmp edx, eax
jl 0x45ff2b
xor ebp, ebp
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
cmp eax, ebp
mov dword [esp + 0x24], ebp
lea edi, [ecx - 1]
jle 0x45ffdc
mov ecx, dword [esp + 0x30]
mov ebp, dword [esp + 0x1c]
and edi, 0xffff
xor edx, edx
mov esi, edi
imul esi, dword [esp + 0x20]
sar ecx, 3
sar ebp, 3
imul edi, dword [esp + 0x34]
mov dword [esp + 0x40], ecx
jmp 0x45ff9f
mov ecx, dword [esp + 0x40]
mov eax, ebp
imul ecx, edx
imul eax, edx
mov edx, dword [esp + 0x18]
add eax, esi
add eax, ebx
add ecx, edi
add ecx, edx
mov dl, byte [eax]
mov byte [ecx], dl
mov dl, byte [eax + 1]
mov byte [ecx + 1], dl
mov edx, dword [esp + 0x24]
mov al, byte [eax + 2]
inc edx
mov byte [ecx + 2], al
mov eax, dword [esp + 0x28]
mov dword [esp + 0x24], edx
and edx, 0xffff
cmp edx, eax
jl 0x45ff9b
xor ebp, ebp
mov eax, dword [esp + 0x14]
xor esi, esi
cmp eax, ebp
jle 0x460020
xor ecx, ecx
mov eax, ecx
imul ecx, dword [esp + 0x34]
imul eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x18]
mov dl, byte [eax + ebx]
add eax, ebx
add ecx, ebp
inc esi
mov byte [ecx], dl
mov dl, byte [eax + 1]
mov byte [ecx + 1], dl
mov al, byte [eax + 2]
mov byte [ecx + 2], al
mov eax, dword [esp + 0x14]
mov ecx, esi
and ecx, 0xffff
cmp ecx, eax
jl 0x45ffe8
xor ebp, ebp
mov ecx, dword [esp + 0x28]
lea eax, [ecx - 1]
mov ecx, dword [esp + 0x14]
cmp ecx, ebp
jle 0x460083
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x30]
and eax, 0xffff
sar esi, 3
sar edi, 3
imul esi, eax
imul edi, eax
xor ecx, ecx
mov eax, ecx
imul ecx, dword [esp + 0x34]
imul eax, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
add eax, esi
add eax, ebx
add ecx, edi
add ecx, edx
inc ebp
mov dl, byte [eax]
mov byte [ecx], dl
mov dl, byte [eax + 1]
mov byte [ecx + 1], dl
mov al, byte [eax + 2]
mov byte [ecx + 2], al
mov eax, dword [esp + 0x14]
mov ecx, ebp
and ecx, 0xffff
cmp ecx, eax
jl 0x46004a
mov ecx, dword [esp + 0x1374]
mov eax, dword [esp + 0x3c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1370
ret