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

Disassembly:
push 0xffffffffffffffff
push 0x4a5d80
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x40
push ebx
push ebp
xor eax, eax
mov cl, 8
push esi
push edi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x40], eax
mov byte [esp + 0x44], cl
mov dword [esp + 0x58], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], eax
mov byte [esp + 0x34], cl
mov edi, dword [esp + 0x64]
mov byte [esp + 0x58], 1
cmp edi, eax
jl 0x46ad3b
mov ecx, dword [esp + 0x68]
cmp ecx, eax
jl 0x46ad3b
cmp dword [esp + 0x70], eax
jl 0x46ad3b
cmp dword [esp + 0x74], eax
jl 0x46ad3b
mov esi, dword [esp + 0x78]
mov edx, dword [esp + 0x6c]
cmp esi, eax
jg 0x46aa14
mov esi, dword [edx + 8]
mov ebx, dword [esp + 0x60]
mov ebp, dword [esp + 0x80]
mov eax, dword [ebx + 8]
imul eax, ebp
sub eax, edi
cmp esi, eax
jle 0x46aa2d
mov esi, eax
mov eax, dword [edx + 8]
mov edi, dword [esp + 0x70]
sub eax, edi
cmp esi, eax
jle 0x46aa3c
mov esi, eax
mov eax, dword [esp + 0x7c]
test eax, eax
jg 0x46aa4b
mov eax, dword [edx + 0xc]
mov dword [esp + 0x7c], eax
mov eax, dword [ebx + 0xc]
mov edi, dword [esp + 0x7c]
imul eax, ebp
sub eax, ecx
cmp edi, eax
jle 0x46aa5f
mov dword [esp + 0x7c], eax
mov eax, dword [edx + 0xc]
mov edi, dword [esp + 0x74]
mov edx, dword [esp + 0x7c]
sub eax, edi
cmp edx, eax
jle 0x46aa74
mov dword [esp + 0x7c], eax
test esi, esi
jle 0x46ad3b
mov eax, dword [esp + 0x7c]
test eax, eax
jle 0x46ad3b
mov eax, dword [esp + 0x64]
cdq
idiv ebp
mov eax, ecx
mov edi, edx
cdq
idiv ebp
lea eax, [edi + esi]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x68], eax
add eax, ebp
mov dword [esp + 0x68], eax
dec eax
mov dword [esp + 0x10], edx
cdq
idiv ebp
mov edi, eax
mov eax, dword [esp + 0x64]
cdq
idiv ebp
mov dword [esp + 0x68], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x64], eax
mov eax, ecx
cdq
idiv ebp
mov dword [esp + 0x68], eax
mov al, byte [esp + 0x84]
test al, al
je 0x46aaed
mov ecx, dword [esp + 0x6c]
mov al, byte [ecx + 1]
mov cl, byte [ebx + 1]
sub al, cl
mov byte [esp + 0x84], al
jmp 0x46aaf5
mov byte [esp + 0x84], 0
lea eax, [esi + esi*2]
test eax, eax
jg 0x46ab01
mov eax, 0x3138
push eax
mov dword [esp + 0x40], eax
call fcn.00442a90
mov edx, dword [esp + 0x70]
add esp, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], eax
mov cl, byte [edx]
cmp cl, 0x18
jne 0x46ab23
mov cl, byte [ebx]
mov byte [esp + 0x34], cl
mov ecx, dword [esp + 0x7c]
test ecx, ecx
mov dword [esp + 0x78], 0
jle 0x46ad10
jmp 0x46ab4c
mov ebp, dword [esp + 0x80]
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x60]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
push edi
push edx
push eax
mov ecx, ebx
call fcn.0046bd60
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
push esi
lea eax, [ecx + edx]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x30], eax
push eax
mov eax, dword [esp + 0x78]
push eax
call fcn.0046bd60
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0x40]
push ecx
push edi
push edx
push eax
mov ecx, ebx
call fcn.0046b2e0
mov al, byte [ebx]
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x30]
cmp al, 0x18
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], ebp
jne 0x46ac0e
mov ecx, dword [esp + 0x6c]
cmp byte [ecx], al
jne 0x46ac05
mov eax, dword [esp + 0x1c]
xor ebx, ebx
test esi, esi
jle 0x46acaa
mov ecx, ebp
sub ecx, eax
add ebx, ecx
cmp ebx, esi
jle 0x46abd4
mov ecx, esi
sub ecx, ebx
add ebp, ecx
cmp eax, ebp
jge 0x46abf0
mov ecx, ebp
sub ecx, eax
mov al, byte [edx]
mov byte [edi], al
mov al, byte [edx + 1]
inc edi
mov byte [edi], al
mov al, byte [edx + 2]
inc edi
mov byte [edi], al
inc edi
dec ecx
jne 0x46abdc
mov ecx, dword [esp + 0x60]
xor eax, eax
movsx ecx, byte [ecx + 2]
add edx, ecx
cmp ebx, esi
jl 0x46abc4
jmp 0x46acaa
cmp al, 0x18
jne 0x46ac0e
inc edx
mov dword [esp + 0x18], edx
mov ebx, dword [esp + 0x1c]
xor ecx, ecx
test esi, esi
jle 0x46acaa
mov eax, ebp
sub eax, ebx
add ecx, eax
cmp ecx, esi
mov dword [esp + 0x14], ecx
jle 0x46ac34
mov eax, esi
sub eax, ecx
add ebp, eax
mov dword [esp + 0x24], ebp
mov al, byte [esp + 0x84]
test al, al
jne 0x46ac43
mov al, byte [edx]
jmp 0x46ac5a
jle 0x46ac4e
movsx ecx, al
mov al, byte [edx]
shl al, cl
jmp 0x46ac56
mov cl, al
mov al, byte [edx]
neg cl
shr al, cl
mov ecx, dword [esp + 0x14]
cmp ebx, ebp
jge 0x46ac92
sub ebp, ebx
mov bl, al
mov bh, bl
mov ecx, ebp
mov eax, ebx
mov edx, ecx
shl eax, 0x10
mov ax, bx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
mov edx, dword [esp + 0x18]
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
add edi, ebp
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0x60]
xor ebx, ebx
movsx eax, byte [eax + 2]
add edx, eax
cmp ecx, esi
mov dword [esp + 0x18], edx
jl 0x46ac1c
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0x7c]
cmp ebx, ebp
jge 0x46acf3
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x80]
cmp ecx, eax
jge 0x46acef
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x6c]
lea edx, [esp + 0x30]
push 0
push edx
push esi
push edi
push eax
call fcn.0046b850
mov eax, dword [esp + 0x10]
inc eax
inc ebx
inc edi
cmp ebx, ebp
mov dword [esp + 0x10], eax
jl 0x46acba
mov dword [esp + 0x78], ebx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x10], 0
inc ecx
cmp ebx, ebp
mov dword [esp + 0x68], ecx
jl 0x46ab3d
mov eax, dword [esp + 0x38]
test eax, eax
mov byte [esp + 0x58], 0
je 0x46ad22
push eax
call fcn.00442aa0
add esp, 4
mov eax, dword [esp + 0x48]
mov dword [esp + 0x58], 0xffffffff
test eax, eax
je 0x46ad3b
push eax
call fcn.00442aa0
add esp, 4
mov ecx, dword [esp + 0x50]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x4c
ret