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

Disassembly:
sub esp, 0x90
mov eax, dword [0x514d34]
xor eax, esp
mov dword [esp + 0x8c], eax
movzx eax, word [esp + 0xa0]
push ebx
mov bl, byte [esp + 0x9c]
mov dword [esp + 0x28], eax
mov al, bl
and al, 0xf
movzx ecx, al
push ebp
push esi
movzx esi, word [esp + 0xb0]
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 + 0x10], ebp
push edi
mov edi, dword [esp + 0xac]
mov dword [esp + 0x24], edi
test cx, cx
je 0x459a5c
cmp dx, bp
jb 0x459a5c
xor eax, eax
mov dword [esp + 0x20], 2
cmp ax, cx
jae 0x4596df
mov edi, dword [esp + 0xa4]
lea ebx, [esp + 0x51]
mov ebp, dword [esp + 0x20]
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, ebp
sub edx, 1
jne 0x4596b5
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov bl, byte [esp + 0xa8]
push 0xc
pop eax
cmp si, ax
jne 0x459709
mov ecx, 0xffff
test bp, bp
je 0x459701
movzx eax, dx
cmp byte [esp + eax + 0x4f], 0
jne 0x459701
add ebp, ecx
add edx, ecx
jmp 0x4596ec
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], edx
push 6
pop edx
cmp si, dx
mov dword [esp + 0x44], edx
push 5
pop edx
mov eax, 0x4cdff4
mov ecx, 0x4c060e
cmovne ecx, eax
mov eax, 0x4beb94
cmp si, dx
push 4
cmovne eax, ecx
mov ecx, 0x4bebfc
pop edx
cmp si, dx
cmovne ecx, eax
push ecx
mov dword [esp + 0x1c], ecx
call fcn.00447230
movzx eax, ax
and bl, 0x80
mov dword [esp + 0x3c], eax
movzx eax, bl
push 0x29
mov dword [esp + 0x24], eax
lea eax, [esp + 0x78]
push 0x20
push eax
call fcn.00443240
add esp, 0x10
xor ecx, ecx
mov ebx, eax
inc ecx
mov dword [esp + 0x40], ecx
push 3
pop eax
mov dword [esp + 0x28], eax
test si, si
je 0x4597a0
cmp si, word [esp + 0x20]
je 0x4597a0
cmp si, ax
je 0x4597a0
push 6
pop eax
cmp si, ax
je 0x4597a0
push 0xc
pop eax
cmp si, ax
je 0x4597a0
and dword [esp + 0x30], 0
jmp 0x4597cc
cmp word [esp + 0x1c], 0
mov dword [esp + 0x30], ecx
je 0x4597cc
push dword [esp + 0x18]
call fcn.00447230
push eax
push dword [esp + 0x20]
push ebx
call fcn.00442cc0
mov eax, dword [esp + 0x48]
add esp, 0x10
movzx eax, ax
add ebx, eax
mov ecx, dword [esp + 0x10]
xor edx, edx
and dword [esp + 0x3c], 0
movzx ebp, bp
movzx eax, cx
sub eax, ebp
mov dword [esp + 0x4c], ebp
dec eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x2c], 0xb
test eax, eax
jle 0x459873
mov edi, dword [esp + 0x14]
xor eax, eax
mov ebp, dword [esp + 0x3c]
mov al, byte [esp + eax + 0x50]
test al, al
cmovne ebp, dword [esp + 0x40]
test bp, bp
jne 0x459819
cmp si, word [esp + 0x44]
jne 0x45985d
add al, 0x30
mov byte [ebx], al
mov eax, ecx
sub eax, edx
inc ebx
sub eax, edi
movzx eax, ax
cmp si, word [esp + 0x28]
je 0x459835
cmp si, word [esp + 0x2c]
jne 0x45985d
test ax, ax
je 0x45985d
cdq
idiv dword [esp + 0x28]
xor eax, eax
inc eax
cmp edx, eax
mov edx, dword [esp + 0x10]
jne 0x45985d
push 3
pop eax
cmp si, ax
setne al
lea eax, [eax*2 + 0x2c]
mov byte [ebx], al
inc ebx
inc edx
movzx eax, dx
mov dword [esp + 0x10], edx
cmp eax, dword [esp + 0x48]
jl 0x459802
mov edi, dword [esp + 0x24]
mov ebp, dword [esp + 0x4c]
movzx eax, dx
mov al, byte [esp + eax + 0x50]
add al, 0x30
mov byte [ebx], al
inc ebx
cmp word [esp + 0x14], 0
je 0x459899
cmp si, word [esp + 0x2c]
setne al
lea eax, [eax*2 + 0x2c]
mov byte [ebx], al
inc ebx
inc edx
cmp dx, cx
jae 0x4598be
movzx eax, dx
lea edi, [esp + 0x50]
add edi, eax
sub ecx, edx
movzx ecx, cx
mov al, byte [edi]
add al, 0x30
mov byte [ebx], al
inc ebx
inc edi
sub ecx, 1
jne 0x4598ad
mov edi, dword [esp + 0x24]
push 8
pop ecx
push 7
pop eax
cmp si, ax
je 0x4598ce
cmp si, cx
jne 0x4598d2
mov byte [ebx], 0x25
inc ebx
cmp word [esp + 0x1c], 0
je 0x4598f9
cmp word [esp + 0x30], 0
jne 0x4598f9
push dword [esp + 0x18]
call fcn.00447230
push eax
push dword [esp + 0x20]
push ebx
call fcn.00442cc0
add esp, 0x10
mov eax, dword [esp + 0x34]
movzx ebx, ax
push ebx
push 0x20
push edi
call fcn.00443240
add esp, 0xc
xor edx, edx
inc edx
push 9
pop eax
push 0xa
pop ecx
cmp si, dx
je 0x459924
cmp si, ax
je 0x459924
cmp si, cx
jne 0x459952
lea eax, [esp + 0x70]
push 0x29
push eax
call fcn.0040a51c
cmp word [esp + 0x24], 0
pop ecx
pop ecx
movzx eax, ax
jne 0x45993e
inc eax
cmp ax, word [esp + 0x34]
jbe 0x459952
movzx eax, ax
lea ecx, [esp + 0x70]
sub eax, ebx
add eax, ecx
jmp 0x459956
lea eax, [esp + 0x70]
push ebx
push eax
push edi
call fcn.00442cc0
add esp, 0xc
cmp si, word [esp + 0x20]
je 0x4599d0
push 3
pop eax
cmp si, ax
je 0x4599d0
push 7
pop eax
cmp si, ax
je 0x4599d0
push 0xa
pop eax
cmp si, ax
je 0x4599d0
push 0xc
pop eax
cmp si, ax
je 0x4599d0
xor eax, eax
inc eax
cmp si, ax
je 0x4599b0
push 9
pop eax
cmp si, ax
je 0x4599b0
push 4
pop eax
cmp si, ax
je 0x4599b0
push 5
pop eax
cmp si, ax
je 0x4599b0
push 8
pop eax
cmp si, ax
jne 0x4599c5
cmp word [esp + 0x1c], 0
jne 0x4599c5
mov eax, dword [esp + 0x38]
mov ecx, ebx
movzx eax, ax
sub ecx, eax
jmp 0x4599c7
mov ecx, ebx
push ecx
push edi
call fcn.0045bf35
pop ecx
pop ecx
push 9
pop eax
cmp si, ax
jne 0x459a5c
sub ebp, 0
je 0x459a3a
sub ebp, 1
je 0x459a23
sub ebp, 1
je 0x459a0c
sub ebp, 1
jne 0x459a5c
lea eax, [ebx - 1]
push eax
lea eax, [edi + 1]
push eax
push edi
call fcn.00442cc0
xor eax, eax
inc eax
push eax
lea eax, [ebx - 1]
push 0x20
add eax, edi
push eax
jmp 0x459a54
lea eax, [ebx - 2]
push eax
lea eax, [edi + 2]
push eax
push edi
call fcn.00442cc0
push dword [esp + 0x2c]
lea eax, [ebx - 2]
jmp 0x459a05
lea eax, [ebx - 3]
push eax
lea eax, [edi + 3]
push eax
push edi
call fcn.00442cc0
push 3
pop eax
push eax
lea eax, [ebx - 3]
jmp 0x459a05
lea eax, [ebx - 5]
push eax
lea eax, [edi + 5]
push eax
push edi
call fcn.00442cc0
push 5
pop eax
push eax
lea ecx, [ebx - 5]
push 0x20
add ecx, edi
push ecx
call fcn.00443240
add esp, 0x18
mov ecx, dword [esp + 0x9c]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00441a5e
add esp, 0x90
ret