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

Disassembly:
sub esp, 0x18
push ebx
push ebp
push esi
mov esi, dword [esp + 0x28]
push edi
mov edi, ecx
nop dword [eax]
mov ecx, dword [esi]
xor ebx, ebx
cmp ecx, dword [esi + 4]
jae 0x495879
mov al, byte [ecx]
movzx ebx, al
test al, al
jle 0x495879
lea eax, [ecx + 1]
mov dword [esi], eax
jmp 0x49588f
push ebx
mov ecx, esi
call fcn.00427450
mov ebx, eax
lea ecx, [ebx - 1]
cmp ecx, 0x7f
jae case.default.0x49589e
mov ecx, ebx
shr ecx, 3
dec ecx
cmp ecx, 0xb
ja case.default.0x49589e
jmp dword [ecx*4 + 0x495d70]
cmp bl, 0xa
jne case.default.0x49589e
or dword [edi + 8], 1
mov eax, dword [edi + 4]
and eax, 0xfffffffe
test byte [edi + 4], 1
je 0x4958c1
mov eax, dword [eax + 0xc]
mov ecx, dword [edi + 0x78]
cmp ecx, 0x575de8
jne 0x4958dd
push 0x575de8
push eax
lea ecx, [edi + 0x78]
call fcn.004312e0
mov ecx, dword [edi + 0x78]
push ecx
push esi
call fcn.00428e40
add esp, 8
jmp 0x495d4d
cmp bl, 0x12
jne case.default.0x49589e
or dword [edi + 8], 2
mov eax, dword [edi + 4]
and eax, 0xfffffffe
test byte [edi + 4], 1
je 0x495908
mov eax, dword [eax + 0xc]
mov ecx, dword [edi + 0x7c]
cmp ecx, 0x575de8
jne 0x495924
push 0x575de8
push eax
lea ecx, [edi + 0x7c]
call fcn.004312e0
mov ecx, dword [edi + 0x7c]
push ecx
push esi
call fcn.00428e40
add esp, 8
jmp 0x495d4d
cmp bl, 0x1a
jne case.default.0x49589e
lea ecx, [edi + 0x10]
call fcn.00424b10
push eax
push esi
call fcn.00428e40
add esp, 8
test al, al
je 0x495d55
lea ecx, [edi + 0x10]
call fcn.00424be0
dec eax
lea ecx, [edi + 0x10]
push eax
call fcn.0041b700
lea ecx, [edi + 0x10]
call fcn.00424be0
dec eax
lea ecx, [edi + 0x10]
push eax
call fcn.0041b700
jmp 0x495860
cmp bl, 0x22
jne case.default.0x49589e
mov ecx, dword [edi + 0x2c]
test ecx, ecx
je 0x4959b4
mov eax, dword [edi + 0x24]
mov edx, dword [ecx]
cmp eax, edx
jge 0x4959af
mov ebp, dword [ecx + eax*4 + 4]
inc eax
push ebp
push esi
mov dword [edi + 0x24], eax
call fcn.00488540
add esp, 8
jmp 0x495d4d
cmp edx, dword [edi + 0x28]
jne 0x4959c6
mov eax, dword [edi + 0x28]
lea ecx, [edi + 0x20]
inc eax
push eax
call fcn.004251a0
mov ecx, dword [edi + 0x2c]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
push dword [edi + 0x20]
call fcn.004859b0
mov edx, dword [edi + 0x24]
add esp, 4
mov ecx, dword [edi + 0x2c]
mov ebp, eax
push ebp
mov dword [ecx + edx*4 + 4], ebp
inc dword [edi + 0x24]
push esi
call fcn.00488540
add esp, 8
jmp 0x495d4d
cmp bl, 0x2a
jne case.default.0x49589e
mov ecx, dword [edi + 0x3c]
test ecx, ecx
je 0x495a29
mov eax, dword [edi + 0x34]
mov edx, dword [ecx]
cmp eax, edx
jge 0x495a24
mov ebp, dword [ecx + eax*4 + 4]
inc eax
push ebp
push esi
mov dword [edi + 0x34], eax
call fcn.004885b0
add esp, 8
jmp 0x495d4d
cmp edx, dword [edi + 0x38]
jne 0x495a3b
mov eax, dword [edi + 0x38]
lea ecx, [edi + 0x30]
inc eax
push eax
call fcn.004251a0
mov ecx, dword [edi + 0x3c]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
push dword [edi + 0x30]
call fcn.00485b20
mov edx, dword [edi + 0x34]
add esp, 4
mov ecx, dword [edi + 0x3c]
mov ebp, eax
push ebp
mov dword [ecx + edx*4 + 4], ebp
inc dword [edi + 0x34]
push esi
call fcn.004885b0
add esp, 8
jmp 0x495d4d
cmp bl, 0x32
jne case.default.0x49589e
mov ecx, dword [edi + 0x4c]
test ecx, ecx
je 0x495a91
mov eax, dword [edi + 0x44]
mov edx, dword [ecx]
cmp eax, edx
jge 0x495a8c
mov ebp, dword [ecx + eax*4 + 4]
inc eax
mov dword [edi + 0x44], eax
jmp 0x495ac2
cmp edx, dword [edi + 0x48]
jne 0x495aa3
mov eax, dword [edi + 0x48]
lea ecx, [edi + 0x40]
inc eax
push eax
call fcn.004251a0
mov ecx, dword [edi + 0x4c]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
push dword [edi + 0x40]
call fcn.00486b60
mov ecx, dword [edi + 0x44]
mov ebp, eax
mov eax, dword [edi + 0x4c]
add esp, 4
mov dword [eax + ecx*4 + 4], ebp
inc dword [edi + 0x44]
mov eax, dword [esi]
cmp eax, dword [esi + 4]
jae 0x495ad9
movzx ecx, byte [eax]
cmp ecx, 0x80
jae 0x495ad9
inc eax
mov dword [esi], eax
jmp 0x495aea
mov ecx, esi
call fcn.00427ef0
mov ecx, eax
test ecx, ecx
js 0x495d55
push ecx
lea eax, [esp + 0x14]
mov ecx, esi
push eax
call fcn.00426c70
cmp dword [esp + 0x14], 0
jl 0x495d55
push esi
mov ecx, ebp
call fcn.00497180
test al, al
je 0x495d55
push dword [esp + 0x10]
mov ecx, esi
call fcn.00426c10
jmp 0x495d4d
cmp bl, 0x3a
jne case.default.0x49589e
mov ecx, dword [edi + 0x5c]
test ecx, ecx
je 0x495b57
mov eax, dword [edi + 0x54]
mov edx, dword [ecx]
cmp eax, edx
jge 0x495b52
mov ebp, dword [ecx + eax*4 + 4]
inc eax
push ebp
push esi
mov dword [edi + 0x54], eax
call fcn.00488620
add esp, 8
jmp 0x495d4d
cmp edx, dword [edi + 0x58]
jne 0x495b69
mov eax, dword [edi + 0x58]
lea ecx, [edi + 0x50]
inc eax
push eax
call fcn.004251a0
mov ecx, dword [edi + 0x5c]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
push dword [edi + 0x50]
call fcn.004860b0
mov edx, dword [edi + 0x54]
add esp, 4
mov ecx, dword [edi + 0x5c]
mov ebp, eax
push ebp
mov dword [ecx + edx*4 + 4], ebp
inc dword [edi + 0x54]
push esi
call fcn.00488620
add esp, 8
jmp 0x495d4d
cmp bl, 0x42
jne case.default.0x49589e
mov ecx, edi
call fcn.004710d0
mov ebx, eax
mov eax, dword [esi]
cmp eax, dword [esi + 4]
jae 0x495bc0
movzx ecx, byte [eax]
cmp ecx, 0x80
jae 0x495bc0
inc eax
mov dword [esi], eax
jmp 0x495bd1
mov ecx, esi
call fcn.00427ef0
mov ecx, eax
test ecx, ecx
js 0x495d55
push ecx
lea eax, [esp + 0x1c]
mov ecx, esi
push eax
call fcn.00426c70
cmp dword [esp + 0x1c], 0
jl 0x495d55
push esi
mov ecx, ebx
call fcn.00495ee0
test al, al
je 0x495d55
push dword [esp + 0x18]
mov ecx, esi
call fcn.00426c10
jmp 0x495d4d
cmp bl, 0x4a
jne case.default.0x49589e
mov ecx, edi
call fcn.00471110
mov ebx, eax
mov eax, dword [esi]
cmp eax, dword [esi + 4]
jae 0x495c32
movzx ecx, byte [eax]
cmp ecx, 0x80
jae 0x495c32
inc eax
mov dword [esi], eax
jmp 0x495c43
mov ecx, esi
call fcn.00427ef0
mov ecx, eax
test ecx, ecx
js 0x495d55
push ecx
lea eax, [esp + 0x24]
mov ecx, esi
push eax
call fcn.00426c70
cmp dword [esp + 0x24], 0
jl 0x495d55
push esi
mov ecx, ebx
call fcn.00497570
test al, al
je 0x495d55
push dword [esp + 0x20]
mov ecx, esi
call fcn.00426c10
jmp 0x495d4d
cmp bl, 0x50
jne 0x495c96
lea eax, [edi + 0x60]
push eax
push esi
push 0x50
push 1
call fcn.004888d0
add esp, 0x10
jmp 0x495d4d
cmp bl, 0x52
jne case.default.0x49589e
lea eax, [edi + 0x60]
push eax
push esi
call fcn.00488830
add esp, 8
jmp 0x495d4d
cmp bl, 0x58
jne 0x495ccc
lea eax, [edi + 0x6c]
push eax
push esi
push 0x58
push 1
call fcn.004888d0
add esp, 0x10
jmp 0x495d4d
cmp bl, 0x5a
jne case.default.0x49589e
lea eax, [edi + 0x6c]
push eax
push esi
call fcn.00488830
add esp, 8
jmp 0x495d4d
cmp bl, 0x62
jne case.default.0x49589e
or dword [edi + 8], 4
mov eax, dword [edi + 4]
and eax, 0xfffffffe
test byte [edi + 4], 1
je 0x495cf8
mov eax, dword [eax + 0xc]
mov ecx, dword [edi + 0x80]
cmp ecx, 0x575de8
jne 0x495d1d
push 0x575de8
push eax
lea ecx, [edi + 0x80]
call fcn.004312e0
mov ecx, dword [edi + 0x80]
push ecx
push esi
call fcn.00428e40
add esp, 8
jmp 0x495d4d
test ebx, ebx
je 0x495d61
test byte [edi + 4], 1
lea ecx, [edi + 4]
je 0x495d3d
mov eax, dword [ecx]
and eax, 0xfffffffe
jmp 0x495d42
call fcn.0041ced4
push eax
push ebx
push esi
call fcn.00441ac0
add esp, 0xc
test al, al
jne 0x495860
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x18
ret 4
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x18
ret 4