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

Disassembly:
sub esp, 0xbc
mov eax, dword [0x514d34]
xor eax, esp
mov dword [esp + 0xb8], eax
movzx eax, word [esp + 0xcc]
push ebx
mov bl, byte [esp + 0xc8]
mov dword [esp + 0x2c], eax
mov al, bl
and al, 0xf
movzx ecx, al
push ebp
push esi
movzx esi, word [esp + 0xdc]
lea eax, [ecx + ecx]
movzx edx, ax
mov al, bl
shr al, 4
and al, 7
mov dword [esp + 0xc], edx
movzx ebp, al
mov dword [esp + 0x18], ebp
push edi
mov edi, dword [esp + 0xd8]
mov dword [esp + 0x24], edi
test cx, cx
je 0x459eed
cmp dx, bp
jb 0x459eed
xor eax, eax
cmp ax, cx
jae 0x459b21
mov edi, dword [esp + 0xd0]
lea ebx, [esp + 0x55]
mov edx, ecx
mov cl, byte [edi]
mov al, cl
and cl, 0xf
shr al, 4
inc edi
mov byte [ebx - 1], al
mov byte [ebx], cl
add ebx, 2
sub edx, 1
jne 0x459afa
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
mov bl, byte [esp + 0xd4]
push 0xc
pop eax
cmp si, ax
jne 0x459b4b
mov ecx, 0xffff
test bp, bp
je 0x459b43
movzx eax, dx
cmp byte [esp + eax + 0x53], 0
jne 0x459b43
add ebp, ecx
add edx, ecx
jmp 0x459b2e
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x10], edx
push 6
pop edx
cmp si, dx
mov dword [esp + 0x48], edx
push 5
pop edx
mov eax, 0x4d4b1c
mov ecx, 0x4d0f78
cmovne ecx, eax
mov eax, 0x4d4b14
cmp si, dx
push 4
cmovne eax, ecx
mov ecx, 0x4d4b0c
pop edx
cmp si, dx
cmovne ecx, eax
push ecx
mov dword [esp + 0x18], ecx
call fcn.0044769f
movzx eax, ax
and bl, 0x80
mov dword [esp + 0x40], eax
movzx eax, bl
push 0x29
mov dword [esp + 0x20], eax
lea eax, [esp + 0x7c]
push 0x20
push eax
call fcn.0040b887
add esp, 0x10
xor ecx, ecx
inc ecx
mov ebx, eax
mov dword [esp + 0x44], ecx
push 3
pop edx
mov dword [esp + 0x28], edx
test si, si
je 0x459be3
push 2
pop eax
cmp si, ax
je 0x459be3
cmp si, dx
je 0x459be3
push 6
pop eax
cmp si, ax
je 0x459be3
push 0xc
pop eax
cmp si, ax
je 0x459be3
and dword [esp + 0x34], 0
jmp 0x459c10
cmp word [esp + 0x18], 0
mov dword [esp + 0x34], ecx
je 0x459c10
push dword [esp + 0x14]
call fcn.0044769f
push eax
push dword [esp + 0x1c]
push ebx
call fcn.004096f6
mov eax, dword [esp + 0x4c]
add esp, 0x10
movzx eax, ax
lea ebx, [ebx + eax*2]
mov ecx, dword [esp + 0x10]
xor edx, edx
and dword [esp + 0x40], 0
movzx ebp, bp
movzx eax, cx
sub eax, ebp
mov dword [esp + 0x50], ebp
dec eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x20], 0x30
mov dword [esp + 0x2c], 0xb
mov dword [esp + 0x30], 0x2c
test eax, eax
jle 0x459cd9
mov edi, dword [esp + 0x1c]
xor eax, eax
mov ebp, dword [esp + 0x40]
mov al, byte [esp + eax + 0x54]
test al, al
cmovne ebp, dword [esp + 0x44]
test bp, bp
jne 0x459c71
cmp si, word [esp + 0x48]
jne 0x459cc3
movzx eax, al
add ax, word [esp + 0x20]
mov word [ebx], ax
push 2
pop eax
add ebx, eax
mov eax, ecx
sub eax, edx
sub eax, edi
movzx eax, ax
cmp si, word [esp + 0x28]
je 0x459c98
cmp si, word [esp + 0x2c]
jne 0x459cc3
test ax, ax
je 0x459cc3
cdq
idiv dword [esp + 0x28]
xor eax, eax
inc eax
cmp edx, eax
jne 0x459cbf
push 0x2e
pop eax
push 3
pop edx
cmp si, dx
push 2
cmove eax, dword [esp + 0x34]
mov word [ebx], ax
pop eax
add ebx, eax
mov edx, dword [esp + 0x10]
inc edx
movzx eax, dx
mov dword [esp + 0x10], edx
cmp eax, dword [esp + 0x4c]
jl 0x459c5a
mov edi, dword [esp + 0x24]
mov ebp, dword [esp + 0x50]
movzx eax, dx
push 2
movzx eax, byte [esp + eax + 0x58]
add ax, word [esp + 0x24]
mov word [ebx], ax
pop eax
add ebx, eax
cmp word [esp + 0x1c], 0
je 0x459d0b
cmp si, word [esp + 0x2c]
push 0x2e
pop eax
cmove eax, dword [esp + 0x30]
mov word [ebx], ax
push 2
pop eax
add ebx, eax
inc edx
push 2
cmp dx, cx
jae 0x459d3b
movzx eax, dx
lea edi, [esp + 0x58]
add edi, eax
sub ecx, edx
movzx ecx, cx
pop edx
movzx eax, byte [edi]
add ax, word [esp + 0x20]
mov word [ebx], ax
add ebx, edx
inc edi
sub ecx, 1
jne 0x459d22
mov edi, dword [esp + 0x24]
jmp 0x459d3c
pop edx
push 8
pop ecx
push 7
pop eax
cmp si, ax
je 0x459d4c
cmp si, cx
jne 0x459d54
push 0x25
pop eax
mov word [ebx], ax
add ebx, edx
cmp word [esp + 0x18], 0
je 0x459d7b
cmp word [esp + 0x34], 0
jne 0x459d7b
push dword [esp + 0x14]
call fcn.0044769f
push eax
push dword [esp + 0x1c]
push ebx
call fcn.004096f6
add esp, 0x10
mov eax, dword [esp + 0x38]
movzx ebx, ax
push ebx
push 0x20
push edi
call fcn.0040b887
add esp, 0xc
xor edx, edx
inc edx
push 9
pop eax
push 0xa
pop ecx
cmp si, dx
je 0x459da6
cmp si, ax
je 0x459da6
cmp si, cx
jne 0x459ddd
lea eax, [esp + 0x74]
push 0x29
push eax
call fcn.0040b8e5
cmp word [esp + 0x20], 0
pop ecx
pop ecx
movzx eax, ax
jne 0x459dc0
inc eax
cmp ax, word [esp + 0x38]
jbe 0x459ddd
movzx eax, ax
lea ecx, [esp + 0x74]
sub eax, ebx
push ebx
lea eax, [ecx + eax*2]
push eax
push edi
call fcn.004096f6
jmp 0x459dec
lea eax, [ebx + ebx]
push eax
lea eax, [esp + 0x78]
push eax
push edi
call fcn.00442cc0
add esp, 0xc
push 2
pop eax
cmp si, ax
je 0x459e5f
push 3
pop eax
cmp si, ax
je 0x459e5f
push 7
pop eax
cmp si, ax
je 0x459e5f
push 0xa
pop eax
cmp si, ax
je 0x459e5f
push 0xc
pop eax
cmp si, ax
je 0x459e5f
xor eax, eax
inc eax
cmp si, ax
je 0x459e3f
push 9
pop eax
cmp si, ax
je 0x459e3f
push 4
pop eax
cmp si, ax
je 0x459e3f
push 5
pop eax
cmp si, ax
je 0x459e3f
push 8
pop eax
cmp si, ax
jne 0x459e54
cmp word [esp + 0x18], 0
jne 0x459e54
mov eax, dword [esp + 0x3c]
mov ecx, ebx
movzx eax, ax
sub ecx, eax
jmp 0x459e56
mov ecx, ebx
push ecx
push edi
call fcn.0045c489
pop ecx
pop ecx
push 9
pop eax
cmp si, ax
jne 0x459eed
sub ebp, 0
je 0x459eca
sub ebp, 1
je 0x459eb3
sub ebp, 1
je 0x459e9c
sub ebp, 1
jne 0x459eed
lea eax, [ebx - 1]
push eax
lea eax, [edi + 2]
push eax
push edi
call fcn.004096f6
xor eax, eax
inc eax
push eax
lea eax, [ebx - 1]
push 0x20
lea eax, [edi + eax*2]
push eax
jmp 0x459ee5
lea eax, [ebx - 2]
push eax
lea eax, [edi + 4]
push eax
push edi
call fcn.004096f6
push 2
pop eax
push eax
lea eax, [ebx - 2]
jmp 0x459e94
lea eax, [ebx - 3]
push eax
lea eax, [edi + 6]
push eax
push edi
call fcn.004096f6
push 3
pop eax
push eax
lea eax, [ebx - 3]
jmp 0x459e94
lea eax, [ebx - 5]
push eax
lea eax, [edi + 0xa]
push eax
push edi
call fcn.004096f6
push 5
pop eax
push eax
lea ecx, [ebx - 5]
push 0x20
lea ecx, [edi + ecx*2]
push ecx
call fcn.0040b887
add esp, 0x18
mov ecx, dword [esp + 0xc8]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00441a5e
add esp, 0xbc
ret