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

Disassembly:
push 0xffffffffffffffff
push 0x6e6cd9
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x98
mov al, byte [esp + 3]
push esi
mov esi, ecx
push edi
xor ecx, ecx
mov dword [esp + 0x44], esi
mov byte [esp + 0x30], al
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ecx
mov dl, byte [esp + 0xb]
mov dword [esp + 0xa8], ecx
mov byte [esp + 0x68], dl
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], ecx
mov al, byte [esp + 0xb]
mov dword [esp + 0x84], ecx
mov byte [esp + 0x80], al
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], ecx
mov eax, dword [esp + 0xb4]
mov byte [esp + 0xa8], 2
mov edx, dword [eax + 4]
cmp edx, ecx
jne 0x4586de
xor eax, eax
jmp 0x4586e6
mov eax, dword [eax + 8]
sub eax, edx
sar eax, 3
mov edi, dword [esp + 0xb0]
mov edx, dword [esi + 0x1c]
push ebx
push ebp
mov ebp, dword [edi + 4]
sub ebp, edx
mov edx, ecx
mov dword [esp + 0x14], edx
jns 0x45870b
neg ebp
mov dword [esp + 0x14], ebp
xor ebp, ebp
mov edx, dword [esp + 0x14]
mov edi, dword [esi + 0x24]
mov ebx, dword [esi + 0x1c]
sub edi, ebx
sub edi, ebp
lea ebx, [edi + edx]
cmp ebx, eax
jle 0x458720
sub eax, edx
mov edi, eax
mov eax, dword [esi + 0x1c]
mov edx, dword [esi + 0x20]
add eax, ebp
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x68], eax
mov eax, dword [esi + 0x18]
mov dword [esp + 0x64], eax
mov eax, dword [esi + 0x30]
cmp eax, ecx
jne 0x458746
xor ebx, ebx
jmp 0x458765
mov edx, dword [esi + 0x24]
mov ebx, dword [esi + 0x1c]
sub edx, ebx
xor ebx, ebx
mov bx, word [eax + edx*8 - 6]
lea eax, [eax + edx*8 - 8]
mov edx, dword [eax + 4]
add ebx, edx
xor edx, edx
mov dx, word [eax]
sub ebx, edx
cmp edi, ecx
jbe 0x4587d8
mov eax, edi
jge 0x45876f
xor eax, eax
shl eax, 3
push eax
call fcn.00652710
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
add esp, 4
mov dword [esp + 0x48], eax
push eax
push ecx
push edx
lea ecx, [esp + 0x44]
call fcn.0045ded0
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
push eax
push ecx
lea ecx, [esp + 0x40]
call fcn.004d1a20
mov edx, dword [esp + 0x3c]
push edx
call fcn.00652870
mov eax, dword [esp + 0x4c]
add esp, 4
lea ecx, [eax + edi*8]
mov dword [esp + 0x44], ecx
lea ecx, [esp + 0x38]
call fcn.005c79a0
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x3c], ecx
lea edx, [ecx + eax*8]
xor ecx, ecx
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x74]
mov dword [esp + 0x58], ecx
cmp eax, ecx
je 0x4587ec
mov ecx, dword [esp + 0x78]
sub ecx, eax
sar ecx, 1
cmp ecx, ebx
jae 0x45881b
mov eax, dword [esp + 0x78]
lea ecx, [esp + 0x58]
push ecx
lea ecx, [esp + 0x74]
mov dword [esp + 0x54], eax
call fcn.0045db00
mov edx, ebx
lea ecx, [esp + 0x74]
sub edx, eax
mov eax, dword [esp + 0x54]
push edx
push eax
call fcn.0064a580
jmp 0x45883e
lea ecx, [esp + 0x70]
call fcn.0045db00
cmp ebx, eax
jae 0x45883e
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
push ecx
lea ecx, [esp + 0x74]
lea eax, [edx + ebx*2]
push eax
call fcn.0045de90
mov ecx, dword [esp + 0x90]
lea eax, [ebx + 1]
mov ebx, dword [esp + 0x8c]
mov byte [esp + 0x13], 0
sar eax, 1
test ebx, ebx
jne 0x45885e
xor edx, edx
jmp 0x458862
mov edx, ecx
sub edx, ebx
cmp edx, eax
jae 0x458889
test ebx, ebx
jne 0x45886e
xor edx, edx
jmp 0x458872
mov edx, ecx
sub edx, ebx
lea ebx, [esp + 0x13]
sub eax, edx
push ebx
push eax
push ecx
lea ecx, [esp + 0x94]
call fcn.00424260
jmp 0x4588bd
test ebx, ebx
je 0x4588bd
mov edx, ecx
sub edx, ebx
cmp eax, edx
jae 0x4588bd
add eax, ebx
mov edx, ecx
push eax
call fcn.0045e720
mov ebx, eax
mov eax, dword [esp + 0x90]
push eax
push ebx
lea ecx, [esp + 0x90]
call fcn.004d1a20
mov dword [esp + 0x90], ebx
mov ebx, dword [esi + 0x30]
mov ecx, dword [esi + 0x14]
lea eax, [edi + ebp]
mov dword [esp + 0x54], ecx
lea ebx, [ebx + ebp*8]
cmp ebp, eax
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x18], 0
jge 0x458c28
mov edx, dword [esp + 0x14]
sub eax, ebp
mov dword [esp + 0x58], eax
lea edi, [edx*8]
jmp 0x458903
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x6c]
mov edi, dword [esp + 0xa4]
mov eax, dword [esp + 0xbc]
mov edx, dword [esi + 0x18]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0xb8]
mov ebp, dword [edi + ecx]
mov esi, dword [eax]
sub ebp, edx
xor eax, eax
mov ax, word [ebx]
add ebp, esi
cmp ebp, eax
jge 0x45892b
mov ebp, eax
mov eax, edi
add edi, 8
mov dword [esp + 0xa4], edi
mov eax, dword [eax + ecx + 4]
xor ecx, ecx
mov cx, word [ebx + 2]
sub eax, edx
add eax, esi
cmp eax, ecx
mov dword [esp + 0x14], eax
jle 0x458953
mov eax, ecx
mov dword [esp + 0x14], eax
cmp eax, ebp
jge 0x45895d
mov eax, ebp
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x18]
cmp ebp, eax
mov dword [esp + 0xa0], ecx
jge 0x458b12
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x4c]
xor edx, edx
mov edi, dword [esp + 0x8c]
mov dx, word [eax]
mov eax, dword [eax + 4]
mov ecx, dword [esi + 0x54]
sub eax, edx
mov edx, dword [esp + 0x18]
add eax, ebp
mov ebx, dword [esp + 0x14]
lea ecx, [ecx + eax*2]
sub ebx, ebp
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x74]
lea ecx, [ecx + edx*2]
mov dword [esp + 0x48], ecx
mov ecx, edx
sar ecx, 1
add edi, ecx
and edx, 1
mov dword [esp + 0x34], edi
mov edi, dword [esi + 0x3c]
shl edx, 2
test edi, edi
jne 0x458a2b
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x48]
lea ecx, [ebx + ebx]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x18]
add ecx, ebx
test edx, edx
mov dword [esp + 0x18], ecx
je 0x4589f9
mov eax, dword [esp + 0x34]
mov dl, byte [eax]
or dl, 0xf0
mov byte [eax], dl
inc eax
mov dword [esp + 0x34], eax
dec ebx
mov edx, ebx
mov edi, dword [esp + 0x34]
sar edx, 1
mov ecx, edx
or eax, 0xffffffff
mov esi, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, esi
and ecx, 3
test bl, 1
rep stosb byte es:[edi], al
je 0x458b12
mov eax, dword [esp + 0x34]
add eax, edx
mov byte [eax], 0xf
jmp 0x458b12
mov esi, eax
and eax, 1
sar esi, 1
add edi, esi
lea ecx, [ebp + 1]
mov dword [esp + 0x84], edi
xor edi, edi
shl eax, 2
test ebx, ebx
mov dword [esp + 0x80], eax
mov byte [esp + 0x13], 0
mov dword [esp + 0x98], ecx
jle 0x458af8
mov esi, dword [esp + 0x50]
mov ecx, dword [esp + 0x84]
xor eax, eax
mov al, byte [ecx]
mov cl, byte [esp + 0x80]
shr eax, cl
mov ecx, 4
and eax, 0xf
sub ecx, dword [esp + 0x80]
mov dword [esp + 0x80], ecx
jne 0x458a95
inc dword [esp + 0x84]
test eax, eax
je 0x458abc
mov ecx, dword [esp + 0x98]
add ecx, edi
mov dword [esp + 0x14], ecx
test edx, edx
mov byte [esp + 0x13], 1
jne 0x458ac7
mov edx, dword [esp + 0x34]
mov byte [edx], al
mov edx, 4
jmp 0x458adb
mov cl, byte [esp + 0x13]
test cl, cl
jne 0x458aa6
inc ebp
jmp 0x458aec
mov ecx, dword [esp + 0x34]
shl al, 4
mov dl, byte [ecx]
or dl, al
mov byte [ecx], dl
inc ecx
mov dword [esp + 0x34], ecx
xor edx, edx
mov eax, dword [esp + 0x48]
mov cx, word [esi]
mov word [eax], cx
add eax, 2
mov dword [esp + 0x48], eax
add esi, 2
inc edi
cmp edi, ebx
jl 0x458a62
mov eax, dword [esp + 0x14]
cmp eax, ebp
jge 0x458b06
mov eax, ebp
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x18]
sub eax, ebp
add ecx, eax
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
add ecx, 8
test eax, eax
mov word [esp + 0x9c], bp
mov word [esp + 0x9e], si
mov dword [esp + 0x6c], ecx
jle 0x458bd1
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x9c]
push edx
push 1
push eax
lea ecx, [esp + 0x44]
call fcn.005df630
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
cmp esi, ebp
jle 0x458b7a
test edx, edx
jne 0x458b69
xor ecx, ecx
jmp 0x458b70
mov ecx, eax
sub ecx, edx
sar ecx, 3
mov edi, dword [esp + 0x60]
add ecx, edi
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x5c]
mov ecx, dword [ecx + 0x18]
add ebp, ecx
cmp ebp, edi
jge 0x458ba9
mov edi, ebp
test edx, edx
mov dword [esp + 0x5c], edi
je 0x458ba9
mov ebx, eax
sub ebx, edx
sar ebx, 3
cmp ebx, 1
jbe 0x458ba9
mov dword [esp + 0x54], 4
add ecx, esi
mov esi, dword [esp + 0x64]
cmp ecx, esi
jle 0x458be6
test edx, edx
mov dword [esp + 0x64], ecx
je 0x458be6
mov ecx, eax
sub ecx, edx
sar ecx, 3
cmp ecx, 1
jbe 0x458be6
mov dword [esp + 0x54], 4
jmp 0x458be6
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x5c]
inc eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x58]
dec ecx
mov dword [esp + 0x58], ecx
jne 0x4588f4
mov esi, dword [esp + 0x4c]
cmp dword [esp + 0x64], edi
jge 0x458c03
mov dword [esp + 0x64], edi
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x68]
pop ebp
cmp ebx, ecx
pop ebx
jge 0x458c15
mov dword [esp + 0x60], ecx
mov esi, dword [esi + 0x18]
cmp edi, esi
jle 0x458c5a
sub edi, esi
test edx, edx
mov ecx, edi
jne 0x458c36
xor eax, eax
jmp 0x458c3b
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x5c]
jmp 0x458bf9
sub eax, edx
sar eax, 3
mov edx, eax
dec eax
test edx, edx
je 0x458c5a
mov edx, dword [esp + 0x34]
sub word [edx + eax*8], cx
mov edx, dword [esp + 0x34]
sub word [edx + eax*8 + 2], cx
mov edx, eax
dec eax
test edx, edx
jne 0x458c42
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x10]
mov byte [esp + 0xa8], 4
cmp ecx, eax
jle 0x458d78
mov eax, ecx
lea ecx, [eax + eax]
push ecx
call fcn.00652710
mov esi, dword [esp + 0x20]
add esp, 4
test esi, esi
jne 0x458ca4
mov dword [esp + 0x1c], eax
lea edx, [esp + 0x14]
lea eax, [esp + 0x14]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
jmp 0x458cd8
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x14]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x14]
cmp ecx, eax
jne 0x458cd3
push esi
call fcn.00652870
add esp, 4
jmp 0x458cd8
mov dword [edx], ecx
mov dword [ecx + 4], edx
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x1c]
lea ecx, [eax + eax]
mov edx, ecx
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 + 0x4c]
test ecx, ecx
jle 0x458d78
lea esi, [eax + 1]
sar esi, 1
push esi
call fcn.00652710
mov edi, dword [esp + 0x2c]
add esp, 4
test edi, edi
jne 0x458d29
mov dword [esp + 0x28], eax
lea eax, [esp + 0x20]
lea ecx, [esp + 0x20]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
jmp 0x458d5d
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x20]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x20]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x20]
cmp ecx, eax
jne 0x458d58
push edi
call fcn.00652870
add esp, 4
jmp 0x458d5d
mov dword [edx], ecx
mov dword [ecx + 4], edx
mov edi, dword [esp + 0x28]
mov ecx, esi
mov esi, dword [esp + 0x84]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x58
call fcn.00652710
add esp, 4
mov dword [esp + 0x90], eax
xor esi, esi
mov byte [esp + 0xa8], 5
cmp eax, esi
je 0x458dc3
lea ecx, [esp + 0x20]
lea edx, [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x38]
push edx
mov edx, dword [esp + 0x54]
push ecx
push edx
mov edx, dword [esp + 0x54]
lea ecx, [esp + 0x64]
add edx, 4
push ecx
push edx
mov ecx, eax
call fcn.00457e20
mov edi, eax
jmp 0x458dc5
xor edi, edi
mov eax, dword [esp + 0x28]
cmp eax, esi
je 0x458dfd
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x20]
cmp ecx, edx
jne 0x458de8
push eax
mov dword [esp + 0x2c], esi
call fcn.00652870
add esp, 4
jmp 0x458dfd
mov eax, dword [esp + 0x24]
mov dword [eax], ecx
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [edx + 4], ecx
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x1c]
cmp eax, esi
je 0x458e35
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x14]
cmp ecx, edx
jne 0x458e20
push eax
mov dword [esp + 0x20], esi
call fcn.00652870
add esp, 4
jmp 0x458e35
mov eax, dword [esp + 0x18]
mov dword [eax], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [edx + 4], ecx
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x84]
push eax
call fcn.00652870
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x88], esi
push ecx
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], esi
call fcn.00652870
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x74], esi
push edx
mov dword [esp + 0x7c], esi
mov dword [esp + 0x80], esi
call fcn.00652870
mov ecx, dword [esp + 0xac]
add esp, 0xc
mov eax, edi
mov dword fs:[0], ecx
pop edi
pop esi
add esp, 0xa4
ret 8