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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x74
and dword [esp + 0x3c], 0
and dword [esp + 0x2c], 0
push ebx
push esi
push edi
mov edi, ecx
mov esi, edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edi
mov ebx, dword [edi + 0xc]
mov ecx, ebx
mov eax, dword [edi]
mov dword [esp + 0x14], eax
mov dword [esp + 0x34], ebx
call fcn.004c857f
mov ecx, ebx
mov dword [esp + 0x24], eax
call fcn.004c857f
mov edx, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0x3c], eax
mov al, byte [esi + 4]
mov dword [esp + 0x30], ecx
mov ecx, dword [edx]
mov byte [esp + 0xf], al
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], ecx
cmp al, 0x70
je 0x4b16b9
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], 1
cmp byte [eax + 0x1e], 0
jne 0x4b16b9
imul eax, ecx, 0x14
mov dword [esp + 0x10], eax
mov eax, dword [esi]
mov ebx, dword [esp + 0x1c]
cmp ebx, dword [eax]
mov ebx, dword [esp + 0x34]
jg 0x4b16b9
mov edi, dword [esp + 0x2c]
xor eax, eax
test ecx, ecx
jle 0x4b1643
mov esi, dword [edx + 0xc]
mov edi, eax
add esi, 0xe
movzx eax, word [esi]
cmp eax, dword [esp + 0x1c]
je 0x4b1633
inc edi
add esi, 0x14
cmp edi, ecx
jl 0x4b1622
mov esi, dword [esp + 0x28]
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x40]
cmp eax, ecx
jne 0x4b16a7
mov ecx, dword [esp + 0x14]
mov edx, 0x81
push 0
call fcn.004c03e8
pop ecx
mov ecx, eax
test ecx, ecx
je 0x4b1765
mov edx, dword [esp + 0x18]
mov eax, 0x800
or word [ecx + 2], ax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 4], eax
push ecx
mov ecx, edi
call fcn.004bf964
mov ebx, dword [esp + 0x14]
mov edx, eax
pop ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x18], edx
mov eax, dword [edx + 0xc]
mov word [eax + ebx + 0xe], cx
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x34]
inc ecx
add dword [esp + 0x10], 0x14
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x14]
inc dword [esp + 0x1c]
cmp byte [eax + 0x1e], 0
je 0x4b15fe
mov eax, ecx
mov ecx, dword [esp + 0x14]
shl eax, 2
mov edx, eax
mov dword [esp + 0x44], eax
call fcn.004d4b0f
mov dword [esp + 0x4c], eax
test eax, eax
je 0x4b17fa
mov eax, dword [esp + 0x18]
xor edx, edx
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + 0xc]
test ecx, ecx
jle 0x4b1708
mov esi, dword [esp + 0x4c]
lea edi, [eax + 0xe]
movzx eax, word [edi]
lea edi, [edi + 0x14]
dec eax
mov dword [esi + edx*4], eax
inc edx
cmp edx, ecx
jl 0x4b16f1
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
imul edx, ecx, 5
mov ecx, dword [esp + 0x14]
add edx, 0x10
call fcn.004d4b0f
mov edx, eax
mov dword [esp + 0x50], edx
test edx, edx
je 0x4b17ff
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x20]
add eax, 0xc
and dword [esp + 0x1c], 0
add eax, edx
mov dword [edx + 8], eax
mov eax, dword [esp + 0x14]
mov word [edx + 6], cx
mov eax, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x49]
mov byte [edx + 4], al
test ecx, ecx
jle 0x4b17ff
xor ecx, ecx
lea ebx, [edx + 0xc]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x40], ebx
jmp 0x4b1771
push 7
pop eax
jmp 0x4b1ef0
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0xc]
mov eax, dword [ecx + eax]
mov ecx, 0x100
mov dword [esp + 0x44], eax
test word [eax + 2], cx
je 0x4b178f
mov eax, dword [eax + 0x14]
jmp 0x4b17b8
mov eax, dword [esp + 0x1c]
mov edx, esi
mov ecx, dword [esp + 0x4c]
push dword [ecx + eax*4]
mov ecx, edi
call fcn.004b2ae8
pop ecx
mov ecx, dword [esp + 0x44]
mov edx, 0x100
or word [ecx + 2], dx
mov edx, dword [esp + 0x50]
mov dword [ecx + 0x14], eax
add dword [esp + 0x40], 4
mov dword [ebx], eax
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
mov ecx, dword [edx + 8]
mov eax, dword [eax + 0xc]
mov al, byte [ebx + eax + 0xc]
mov ebx, dword [esp + 0x1c]
mov byte [ebx + ecx], al
mov eax, ebx
mov ecx, dword [esp + 0x10]
inc eax
add ecx, 0x14
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], ecx
cmp eax, dword [esp + 0x20]
jl 0x4b176d
mov ebx, dword [esp + 0x34]
jmp 0x4b17ff
and dword [esp + 0x50], 0
mov eax, dword [esp + 0x18]
mov edx, eax
mov dword [esi + 0x18], eax
mov ecx, dword [edi]
push 0
call fcn.004bfcd0
cmp byte [esp + 0x13], 0x70
pop ecx
mov ecx, dword [esp + 0x30]
mov dword [ecx + 0x18], eax
jne 0x4b182a
and dword [esp + 0x40], 0
jmp 0x4b18d7
mov eax, dword [esi]
mov ecx, edi
mov eax, dword [eax]
mov dword [esp + 0x18], eax
lea edx, [eax + 1]
call fcn.004bd1ba
push 0
push eax
push 0
push 7
pop edx
mov ecx, ebx
mov dword [esp + 0x4c], eax
call fcn.004c863a
imul edx, dword [esp + 0x24], 5
add esp, 0xc
mov ecx, dword [esp + 0x14]
add edx, 0x10
call fcn.004d4b79
mov ecx, eax
mov dword [esp + 0x38], ecx
test ecx, ecx
je 0x4b18d7
mov edx, dword [esp + 0x18]
mov word [ecx + 6], dx
lea eax, [edx + 3]
lea eax, [ecx + eax*4]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x49]
mov byte [ecx + 4], al
xor eax, eax
mov dword [esp + 0x1c], eax
test edx, edx
jle 0x4b18d7
mov ebx, dword [esp + 0x38]
add ecx, 0xc
mov dword [esp + 0x44], ecx
push eax
mov edx, esi
mov ecx, edi
call fcn.004b2ae8
mov edx, dword [esp + 0x48]
pop ecx
mov ecx, dword [esp + 0x1c]
mov dword [edx], eax
add edx, 4
mov eax, dword [ebx + 8]
mov dword [esp + 0x44], edx
mov byte [ecx + eax], 0
mov eax, ecx
inc eax
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x18]
jl 0x4b18a3
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
mov edx, esi
and dword [esi + 0x1c], 0
mov ecx, edi
push 0x4fc3dc
and dword [eax + 0x24], 0
push dword [esi + 0x18]
call fcn.004c0db9
mov eax, dword [esp + 0x38]
pop ecx
pop ecx
cmp dword [eax + 0x1c], 0
jne 0x4b1913
push 0x4fc3d4
push dword [eax + 0x18]
mov edx, eax
mov ecx, edi
call fcn.004c0db9
pop ecx
pop ecx
push dword [esp + 0x24]
mov edx, esi
mov ecx, edi
call fcn.004b2b28
xor edx, edx
pop ecx
cmp dword [esi + 0x30], edx
je 0x4b1977
cmp byte [esp + 0xf], 0x70
jne 0x4b1977
mov eax, dword [edi + 0x48]
inc eax
mov dword [esp + 0x1c], eax
lea ecx, [eax + 1]
mov dword [esp + 0x44], ecx
mov dword [edi + 0x48], ecx
mov ecx, dword [esi + 0x34]
test ecx, ecx
je 0x4b194b
inc ecx
jmp 0x4b194e
mov ecx, dword [esi + 0x30]
push edx
push eax
push ecx
push 0xe
pop edx
mov ecx, ebx
call fcn.004c863a
add esp, 0xc
mov ecx, ebx
push 0
push dword [esp + 0x48]
push dword [esp + 0x24]
push 0xe
pop edx
call fcn.004c863a
add esp, 0xc
jmp 0x4b197f
mov dword [esp + 0x44], edx
mov dword [esp + 0x1c], edx
mov edx, dword [esi + 0x28]
mov ecx, dword [esp + 0x14]
call fcn.004c00ab
mov edx, dword [esi + 0x2c]
mov ecx, dword [esp + 0x14]
and dword [esi + 0x28], 0
call fcn.004c00ab
and dword [esi + 0x2c], 0
mov ecx, dword [edi + 0x48]
inc ecx
mov word [esp + 0x70], 0xa
mov dword [esp + 0x18], ecx
mov dword [esp + 0x74], ecx
mov word [esp + 0x60], 0xa
lea edx, [ecx + 2]
mov ecx, ebx
lea eax, [edx + 3]
mov dword [esp + 0x10], edx
mov dword [edi + 0x48], eax
xor eax, eax
push eax
mov dword [esp + 0x68], edx
xor edx, edx
push eax
push eax
inc edx
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
call fcn.004c863a
mov ecx, dword [esp + 0x28]
add esp, 0xc
mov dword [esp + 0x54], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x30]
mov edx, eax
mov dword [eax + 0x30], ecx
lea ecx, [esp + 0x70]
push ecx
mov ecx, edi
call fcn.004af6a3
mov edi, dword [esp + 0x1c]
pop ecx
push 0
mov ecx, ebx
lea eax, [edi + 1]
push eax
push 1
push 7
pop edx
call fcn.004c863a
add esp, 0xc
mov ecx, ebx
push 0
push 0
push edi
push 4
pop edx
call fcn.004c863a
mov eax, dword [ebx + 0xc]
add esp, 0xc
mov edi, dword [esi + 0x30]
mov ecx, dword [esp + 0x44]
mov esi, dword [esi + 0x34]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x28]
mov edx, eax
and dword [eax + 0x34], 0
mov dword [eax + 0x30], ecx
lea ecx, [esp + 0x60]
push ecx
mov ecx, dword [esp + 0x30]
call fcn.004af6a3
mov eax, dword [esp + 0x2c]
pop ecx
push 0
mov dword [eax + 0x30], edi
mov edi, eax
mov dword [edi + 0x34], esi
mov esi, dword [esp + 0x14]
mov ecx, ebx
inc esi
push esi
push 1
push 7
pop edx
call fcn.004c863a
add esp, 0xc
mov ecx, ebx
push 0
push 0
push dword [esp + 0x18]
push 4
pop edx
call fcn.004c863a
add esp, 0xc
lea eax, [esi + 1]
mov esi, dword [esp + 0x2c]
mov edx, edi
mov ecx, esi
push dword [esp + 0x24]
push 0xfffffffffffffff0
push dword [esp + 0x40]
push dword [esp + 0x4c]
push eax
push dword [ebp + 8]
lea eax, [esp + 0x88]
push eax
call fcn.004b1ef7
mov dword [esp + 0x60], eax
add esp, 0x1c
mov al, byte [esp + 0xf]
cmp al, 0x70
je 0x4b1ae4
cmp al, 0x6f
jne 0x4b1b1a
push dword [esp + 0x24]
mov eax, dword [esp + 0x14]
mov edx, edi
push 0xffffffffffffffef
push dword [esp + 0x40]
add eax, 3
mov ecx, esi
push dword [esp + 0x4c]
push eax
push dword [ebp + 8]
lea eax, [esp + 0x78]
push eax
call fcn.004b1ef7
mov ebx, dword [esp + 0x50]
add esp, 0x1c
mov dword [esp + 0x48], eax
mov al, byte [esp + 0xf]
cmp al, 0x71
je 0x4b1c6c
cmp al, 0x72
je 0x4b1c6c
mov eax, dword [esp + 0x10]
mov ecx, ebx
push 0
push dword [esp + 0x28]
inc eax
push eax
push 0x1a
pop edx
call fcn.004c863a
add esp, 0xc
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
mov ecx, ebx
add eax, 3
push 0
push dword [esp + 0x4c]
push eax
push 2
pop edx
call fcn.004c863a
add esp, 0xc
mov ecx, ebx
push 0
push 0
push dword [esp + 0x18]
push 4
pop edx
call fcn.004c863a
add esp, 0xc
xor edx, edx
inc edx
mov ecx, ebx
push 0
push dword [esp + 0x20]
push 0
call fcn.004c863a
add esp, 0xc
mov eax, dword [esp + 0x18]
mov ecx, ebx
push 0
push dword [esp + 0x28]
inc eax
push eax
push 0x1a
pop edx
call fcn.004c863a
add esp, 0xc
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x10]
mov ecx, ebx
add eax, 2
push 0
push dword [esp + 0x48]
push eax
push 2
pop edx
call fcn.004c863a
add esp, 0xc
mov ecx, ebx
push 0
push 0
push dword [esp + 0x20]
push 4
pop edx
call fcn.004c863a
add esp, 0xc
xor edx, edx
inc edx
mov ecx, ebx
push 0
push dword [esp + 0x3c]
push 0
call fcn.004c863a
add esp, 0xc
mov eax, dword [esp + 0x10]
mov ecx, ebx
push 0
push dword [esp + 0x48]
add eax, 2
push eax
push 2
pop edx
call fcn.004c863a
add esp, 0xc
mov dword [esp + 0x28], eax
mov ecx, ebx
push 0
push 0
push dword [esp + 0x20]
push 4
pop edx
call fcn.004c863a
mov eax, dword [esp + 0x24]
add esp, 0xc
inc eax
mov ecx, ebx
push 0
push dword [esp + 0x20]
push eax
push 0x1a
pop edx
call fcn.004c863a
add esp, 0xc
xor edx, edx
inc edx
mov ecx, ebx
push 0
push dword [esp + 0x40]
push 0
call fcn.004c863a
mov al, byte [esp + 0x1b]
add esp, 0xc
cmp al, 0x70
jne 0x4b1c9d
mov eax, dword [esp + 0x28]
mov dword [esp + 0x34], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x44], eax
jmp 0x4b1d1f
push 0
push dword [esp + 0x28]
xor edx, edx
mov ecx, ebx
push 0
inc edx
call fcn.004c863a
add esp, 0xc
mov dword [esp + 0x1c], eax
cmp byte [esp + 0xf], 0x72
jne 0x4b1b8c
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], eax
jmp 0x4b1bee
cmp al, 0x72
jne 0x4b1cba
mov eax, dword [esp + 0x28]
mov dword [esp + 0x34], eax
inc eax
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x44], eax
jmp 0x4b1d3a
push 0
push 0
push dword [esp + 0x20]
mov ecx, ebx
push 4
pop edx
call fcn.004c863a
add esp, 0xc
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x18]
mov ecx, ebx
inc eax
push 0
push dword [esp + 0x20]
push eax
push 0x1a
pop edx
call fcn.004c863a
add esp, 0xc
xor edx, edx
inc edx
mov ecx, ebx
push 0
push dword [esp + 0x40]
push 0
call fcn.004c863a
mov eax, dword [esp + 0x34]
add esp, 0xc
cmp byte [esp + 0xf], 0x6f
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
jne 0x4b1d3a
mov eax, dword [esp + 0x10]
mov ecx, ebx
push 0
push dword [esp + 0x4c]
add eax, 3
push eax
push 2
pop edx
call fcn.004c863a
add esp, 0xc
push 0
push 0
push dword [esp + 0x18]
mov ecx, ebx
push 4
pop edx
call fcn.004c863a
mov eax, dword [esp + 0x1c]
add esp, 0xc
inc eax
mov ecx, ebx
push 0
push dword [esp + 0x3c]
push eax
push 0x1a
pop edx
call fcn.004c863a
add esp, 0xc
xor edx, edx
inc edx
mov ecx, ebx
push 0
push dword [esp + 0x40]
push 0
call fcn.004c863a
mov edx, dword [esp + 0x60]
add esp, 0xc
mov ecx, ebx
push dword [ebx + 0xc]
call fcn.004c83c5
mov eax, dword [esp + 0x1c]
pop ecx
push 0
inc eax
mov ecx, ebx
push eax
push 0
push 7
pop edx
call fcn.004c863a
mov eax, dword [esp + 0x1c]
add esp, 0xc
inc eax
mov ecx, ebx
push 0
push eax
push 0
push 7
pop edx
call fcn.004c863a
add esp, 0xc
mov ecx, ebx
push 0
push dword [esp + 0x5c]
push dword [esp + 0x20]
push 2
pop edx
call fcn.004c863a
add esp, 0xc
mov ecx, ebx
push 0
push dword [esp + 0x60]
push dword [esp + 0x18]
push 2
pop edx
call fcn.004c863a
mov eax, dword [esp + 0x24]
add esp, 0xc
inc eax
mov ecx, ebx
push 0
push dword [esp + 0x20]
push eax
push 0x1a
pop edx
call fcn.004c863a
mov eax, dword [esp + 0x1c]
add esp, 0xc
inc eax
push 0
push dword [esp + 0x3c]
push eax
push 0x1a
pop edx
mov ecx, ebx
call fcn.004c863a
mov edx, dword [esp + 0x48]
add esp, 0xc
mov ecx, ebx
call fcn.004c8567
xor eax, eax
push eax
push eax
push eax
push 0x17
pop edx
call fcn.004c863a
add esp, 0xc
mov edx, eax
mov ecx, ebx
push 0xfffffffffffffff1
push dword [esp + 0x50]
call fcn.004c80c5
push 0xfffffffffffffff0
push dword [esp + 0x5c]
mov ecx, ebx
push dword [esp + 0x30]
push dword [esp + 0x7c]
push dword [esp + 0x90]
push 0x18
pop edx
call fcn.004c85cc
add esp, 0x1c
mov ecx, ebx
push dword [esp + 0x44]
push dword [esp + 0x38]
push dword [esp + 0x30]
push 0x19
pop edx
call fcn.004c863a
mov ecx, dword [esp + 0x4c]
add esp, 0xc
test ecx, ecx
je 0x4b1e97
mov eax, dword [esp + 0x20]
inc eax
cmp eax, dword [esi + 0x38]
jle 0x4b1e97
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], ecx
mov edx, dword [esp + 0x24]
mov ecx, ebx
call fcn.004c8567
mov eax, dword [ebp + 8]
cmp byte [eax], 5
jne 0x4b1eca
mov eax, dword [esp + 0x30]
mov ecx, eax
mov eax, dword [eax + 0x1c]
jmp 0x4b1eba
mov ecx, eax
mov eax, dword [ecx + 0x1c]
test eax, eax
jne 0x4b1eb5
push dword [ecx]
xor edx, edx
mov ecx, esi
call fcn.004b2fa9
pop ecx
mov esi, dword [edi + 0x1c]
test esi, esi
je 0x4b1ee7
mov ebx, dword [esp + 0x14]
mov edx, esi
mov ecx, ebx
call fcn.004b4027
push esi
push ebx
call fcn.004d4cf2
pop ecx
pop ecx
mov eax, dword [esp + 0x30]
mov dword [edi + 0x1c], eax
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret