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

Disassembly:
push 0xffffffffffffffff
push 0x4d22a0
mov eax, dword fs:[0]
push eax
sub esp, 0x64
mov eax, dword [0x51e494]
xor eax, esp
mov dword [esp + 0x60], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x51e494]
xor eax, esp
push eax
lea eax, [esp + 0x78]
mov dword fs:[0], eax
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x94]
mov edi, dword [esp + 0x88]
mov ebp, dword [esp + 0x90]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x9c]
push eax
mov dword [esp + 0x38], ecx
call fcn.0044e6d0
add esp, 4
mov esi, eax
lea edx, [esp + 0x58]
push edx
mov ecx, esi
call fcn.0044c0e0
xor ebx, ebx
mov dword [esp + 0x80], ebx
cmp dword [esp + 0x6c], ebx
jne 0x450779
mov dword [esp + 0x38], ebx
jmp 0x450789
mov eax, dword [esi]
mov edx, dword [eax + 8]
mov ecx, esi
call edx
movzx eax, ax
mov dword [esp + 0x38], eax
add edi, 8
push edi
lea ecx, [esp + 0x20]
push ecx
push 1
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x34]
push eax
mov byte [esp + 0x28], 0x30
mov dword [esp + 0x38], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x44], edi
call fcn.004ac164
mov ecx, dword [esp + 0x40]
add esp, 0x14
mov dword [esp + 0x20], ecx
cmp byte [ebp + 4], bl
jne 0x4507cb
mov ecx, ebp
call fcn.00451f50
mov esi, dword [esp + 0x34]
cmp byte [esi + 4], bl
jne 0x4507db
mov ecx, esi
call fcn.00451f50
cmp dword [ebp], ebx
jne 0x4507ea
cmp dword [esi], ebx
je 0x45088a
jmp 0x4507f2
cmp dword [esi], ebx
jne 0x45088a
cmp byte [ebp + 4], bl
jne 0x4507fe
mov ecx, ebp
call fcn.00451f50
movzx esi, word [ebp + 6]
push edi
lea edx, [esp + 0x2c]
push edx
push 1
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x2c]
push ecx
mov byte [esp + 0x28], 0x2b
mov dword [esp + 0x30], ebx
mov dword [esp + 0x3c], ebx
call fcn.004ac164
add esp, 0x14
cmp si, word [esp + 0x1c]
jne 0x450839
mov eax, dword [esp + 0x2c]
mov byte [eax], 0x2b
jmp 0x45087e
cmp byte [ebp + 4], bl
jne 0x450845
mov ecx, ebp
call fcn.00451f50
movzx esi, word [ebp + 6]
push edi
lea edx, [esp + 0x2c]
push edx
push 1
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x2c]
push ecx
mov byte [esp + 0x28], 0x2d
mov dword [esp + 0x30], ebx
mov dword [esp + 0x3c], ebx
call fcn.004ac164
add esp, 0x14
cmp si, word [esp + 0x1c]
jne 0x45088a
mov eax, dword [esp + 0x2c]
mov byte [eax], 0x2d
inc eax
mov ecx, ebp
mov dword [esp + 0x20], eax
call fcn.00451ef0
mov eax, dword [esp + 0x98]
and eax, 0xe00
cmp eax, 0x400
jne 0x4508a8
mov edi, 8
mov dword [esp + 0x1c], edi
jmp 0x4508c7
cmp eax, 0x800
jne 0x4508ba
mov edi, 0x10
mov dword [esp + 0x1c], edi
jmp 0x4508c7
neg eax
sbb eax, eax
and eax, 0xa
mov edi, eax
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x34]
push esi
push ebp
mov byte [esp + 0x22], bl
mov byte [esp + 0x23], bl
call fcn.004525b0
add esp, 8
test al, al
je 0x4509b3
cmp byte [ebp + 4], bl
jne 0x4508f1
mov ecx, ebp
call fcn.00451f50
movzx eax, word [ebp + 6]
cmp ax, word [esp + 0x24]
jne 0x4509b3
mov ecx, ebp
mov byte [esp + 0x1a], 1
call fcn.00451ef0
push esi
push ebp
call fcn.004525b0
add esp, 8
test al, al
je 0x4509a4
cmp byte [ebp + 4], bl
jne 0x45092a
mov ecx, ebp
call fcn.00451f50
mov edx, dword [esp + 0x30]
movzx esi, word [ebp + 6]
push edx
lea eax, [esp + 0x2c]
push eax
push 1
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x34]
push edx
mov byte [esp + 0x28], 0x78
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
call fcn.004ac164
add esp, 0x14
cmp si, word [esp + 0x24]
je 0x450985
cmp byte [ebp + 4], bl
jne 0x45096c
mov ecx, ebp
call fcn.00451f50
mov eax, dword [esp + 0x30]
movzx esi, word [ebp + 6]
push eax
push ebx
push 0x58
call fcn.004536f0
add esp, 0xc
cmp si, ax
jne 0x4509a4
cmp edi, ebx
je 0x45098e
cmp edi, 0x10
jne 0x4509a4
mov edi, 0x10
mov ecx, ebp
mov dword [esp + 0x1c], edi
mov byte [esp + 0x1a], bl
call fcn.00451ef0
jmp 0x4509bc
cmp edi, ebx
jne 0x4509b7
mov edi, 8
mov dword [esp + 0x1c], edi
jmp 0x4509bc
cmp edi, ebx
je 0x4509d1
cmp edi, 0xa
je 0x4509d1
mov eax, edi
sub eax, 8
neg eax
sbb eax, eax
and eax, 0xe
add eax, 8
mov dword [esp + 0x24], eax
jmp 0x4509d9
mov dword [esp + 0x24], 0xa
mov cl, byte [esp + 0x1a]
mov dword [esp + 0x50], ebx
mov byte [esp + 0x40], bl
mov dword [esp + 0x54], 0xf
mov byte [esp + 0x40], cl
mov dword [esp + 0x50], 1
mov byte [esp + 0x41], bl
mov byte [esp + 0x80], 1
mov esi, dword [esp + 0x34]
xor edi, edi
jmp 0x450a10
cmp byte [ebp + 4], bl
jne 0x450a55
mov ecx, dword [ebp]
cmp ecx, ebx
je 0x450a4e
mov eax, dword [ecx + 0x20]
cmp dword [eax], ebx
je 0x450a31
mov edx, dword [ecx + 0x30]
cmp dword [edx], ebx
jle 0x450a31
mov eax, dword [eax]
movzx eax, word [eax]
jmp 0x450a3b
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
movzx eax, ax
movzx eax, ax
mov ecx, 0xffff
cmp cx, ax
je 0x450a4e
mov word [ebp + 6], ax
jmp 0x450a51
mov dword [ebp], ebx
mov byte [ebp + 4], 1
cmp byte [esi + 4], bl
jne 0x450a98
mov ecx, dword [esi]
cmp ecx, ebx
je 0x450a92
mov eax, dword [ecx + 0x20]
cmp dword [eax], ebx
je 0x450a75
mov edx, dword [ecx + 0x30]
cmp dword [edx], ebx
jle 0x450a75
mov eax, dword [eax]
movzx eax, word [eax]
jmp 0x450a7f
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
movzx eax, ax
movzx eax, ax
mov ecx, 0xffff
cmp cx, ax
je 0x450a92
mov word [esi + 6], ax
jmp 0x450a94
mov dword [esi], ebx
mov byte [esi + 4], 1
mov ecx, dword [ebp]
cmp ecx, ebx
jne 0x450ad4
cmp dword [esi], ebx
jne 0x450ad8
cmp edi, ebx
je 0x450cf4
cmp edi, dword [esp + 0x50]
jbe 0x450ab6
call fcn.004af7e8
cmp dword [esp + 0x54], 0x10
mov eax, dword [esp + 0x40]
jae 0x450ac5
lea eax, [esp + 0x40]
cmp byte [eax + edi], bl
jle 0x450cf0
inc edi
jmp 0x450cf4
cmp dword [esi], ebx
jne 0x450aa3
cmp byte [ebp + 4], bl
jne 0x450b1a
cmp ecx, ebx
je 0x450b13
mov eax, dword [ecx + 0x20]
cmp dword [eax], ebx
je 0x450af6
mov edx, dword [ecx + 0x30]
cmp dword [edx], ebx
jle 0x450af6
mov eax, dword [eax]
movzx eax, word [eax]
jmp 0x450b00
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
movzx eax, ax
movzx eax, ax
mov ecx, 0xffff
cmp cx, ax
je 0x450b13
mov word [ebp + 6], ax
jmp 0x450b16
mov dword [ebp], ebx
mov byte [ebp + 4], 1
mov edx, dword [esp + 0x30]
movzx eax, word [ebp + 6]
push edx
lea ecx, [esp + 0x2c]
push ecx
push eax
lea edx, [esp + 0x20]
push edx
mov byte [esp + 0x24], bl
mov dword [esp + 0x38], ebx
call fcn.004ac2d8
mov al, byte [esp + 0x24]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov byte [ecx], al
movsx eax, al
push edx
push eax
push 0x4f1b9c
call fcn.004b1130
add esp, 0x1c
test eax, eax
je 0x450bcf
cmp byte [esp + 0x1b], bl
jne 0x450b6e
mov ecx, dword [esp + 0x20]
cmp byte [ecx], 0x30
je 0x450b84
mov eax, dword [esp + 0x2c]
add eax, 0x1f
cmp dword [esp + 0x20], eax
jae 0x450b84
inc dword [esp + 0x20]
mov byte [esp + 0x1b], 1
mov byte [esp + 0x1a], 1
cmp edi, dword [esp + 0x50]
jbe 0x450b94
call fcn.004af7e8
cmp dword [esp + 0x54], 0x10
mov eax, dword [esp + 0x40]
jae 0x450ba3
lea eax, [esp + 0x40]
cmp byte [eax + edi], 0x7f
je 0x450c87
cmp edi, dword [esp + 0x50]
jbe 0x450bb8
call fcn.004af7e8
cmp dword [esp + 0x54], 0x10
mov eax, dword [esp + 0x40]
jae 0x450bc7
lea eax, [esp + 0x40]
inc byte [eax + edi]
jmp 0x450c87
cmp edi, dword [esp + 0x50]
jbe 0x450bda
call fcn.004af7e8
cmp dword [esp + 0x54], 0x10
mov eax, dword [esp + 0x40]
jae 0x450be9
lea eax, [esp + 0x40]
cmp byte [eax + edi], bl
je 0x450aa3
mov esi, dword [esp + 0x38]
cmp si, bx
je 0x450aa3
cmp byte [ebp + 4], bl
jne 0x450c0b
mov ecx, ebp
call fcn.00451f50
movzx eax, word [ebp + 6]
cmp ax, si
jne 0x450aa3
or edx, 0xffffffff
sub edx, dword [esp + 0x50]
cmp edx, 1
ja 0x450c29
call fcn.004abb06
mov esi, dword [esp + 0x50]
inc esi
cmp esi, 0xfffffffe
jbe 0x450c38
call fcn.004abb06
mov eax, dword [esp + 0x54]
cmp eax, esi
jae 0x450caf
mov eax, dword [esp + 0x50]
push eax
push esi
lea ecx, [esp + 0x44]
call fcn.0040645d
cmp esi, ebx
jbe 0x450c82
mov eax, dword [esp + 0x40]
mov ecx, 0x10
cmp dword [esp + 0x54], ecx
jae 0x450c66
lea eax, [esp + 0x40]
mov edx, dword [esp + 0x50]
mov byte [eax + edx], bl
mov eax, dword [esp + 0x40]
mov dword [esp + 0x50], esi
cmp dword [esp + 0x54], ecx
jae 0x450c7f
lea eax, [esp + 0x40]
mov byte [eax + esi], bl
mov esi, dword [esp + 0x34]
inc edi
mov ecx, dword [ebp]
cmp ecx, ebx
je 0x450ce4
mov eax, dword [ecx + 0x20]
cmp dword [eax], ebx
je 0x450cc8
mov edx, dword [ecx + 0x30]
cmp dword [edx], ebx
jle 0x450cc8
mov eax, edx
dec dword [eax]
mov ecx, dword [ecx + 0x20]
mov eax, dword [ecx]
lea edx, [eax + 2]
mov dword [ecx], edx
movzx eax, word [eax]
jmp 0x450cd2
cmp esi, ebx
jne 0x450c51
cmp eax, 0x10
mov eax, dword [esp + 0x40]
mov dword [esp + 0x50], ebx
jae 0x450cc4
lea eax, [esp + 0x40]
mov byte [eax], bl
jmp 0x450c82
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
movzx eax, ax
mov ecx, 0xffff
cmp cx, ax
je 0x450ce4
mov byte [ebp + 4], bl
jmp 0x450a10
mov dword [ebp], ebx
mov byte [ebp + 4], 1
jmp 0x450a10
mov byte [esp + 0x1a], bl
cmp dword [esp + 0x70], 0x10
mov esi, dword [esp + 0x5c]
jae 0x450d03
lea esi, [esp + 0x5c]
mov ebp, 0x10
cmp byte [esp + 0x1a], bl
je 0x450d7a
mov edi, edi
cmp edi, ebx
jbe 0x450d6a
cmp byte [esi], 0x7f
je 0x450d6a
sub edi, 1
je 0x450d3e
cmp edi, dword [esp + 0x50]
jbe 0x450d29
call fcn.004af7e8
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x54], ebp
jae 0x450d37
lea eax, [esp + 0x40]
mov dl, byte [esi]
cmp dl, byte [eax + edi]
jne 0x450d7a
cmp edi, ebx
jne 0x450d62
cmp edi, dword [esp + 0x50]
jbe 0x450d4d
call fcn.004af7e8
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x54], ebp
jae 0x450d5b
lea eax, [esp + 0x40]
mov cl, byte [esi]
cmp cl, byte [eax + edi]
jl 0x450d7a
cmp byte [esi + 1], bl
jle 0x450d10
inc esi
jmp 0x450d10
mov eax, dword [esp + 0x20]
cmp byte [esp + 0x1b], bl
jne 0x450d7e
mov byte [eax], 0x30
inc eax
jmp 0x450d7e
mov eax, dword [esp + 0x2c]
mov byte [eax], bl
mov byte [esp + 0x80], bl
cmp dword [esp + 0x54], ebp
jb 0x450d9a
mov edx, dword [esp + 0x40]
push edx
call fcn.004ada40
add esp, 4
mov esi, 0xf
mov dword [esp + 0x54], esi
mov dword [esp + 0x50], ebx
mov byte [esp + 0x40], bl
mov dword [esp + 0x80], 0xffffffff
cmp dword [esp + 0x70], ebp
jb 0x450dc9
mov eax, dword [esp + 0x5c]
push eax
call fcn.004ada40
add esp, 4
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x70], esi
mov dword [esp + 0x6c], ebx
mov byte [esp + 0x5c], bl
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.004ada4b
add esp, 0x70
ret