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

Disassembly:
sub esp, 0x18
cmp dword [esp + 0x24], 0
push ebx
mov ebx, dword [esp + 0x20]
push esi
mov eax, dword [ebx + 0x440]
mov esi, dword [eax]
mov dword [esp + 8], esi
je 0x4b5a39
push 1
push ebx
call fcn.004b46b0
add esp, 8
test eax, eax
jne 0x4b5a34
pop esi
or eax, 0xffffffff
pop ebx
add esp, 0x18
ret
cmp byte [eax], 1
jne 0x4b5a2b
push 1
push ebx
call fcn.004b46b0
add esp, 8
test eax, eax
je 0x4b5a2b
cmp byte [eax], 2
jne 0x4b5a9e
push 1
push ebx
call fcn.004b46b0
add esp, 8
test eax, eax
je 0x4b5a2b
lea esp, [esp]
cmp byte [eax], 0
je 0x4b5a8f
lea eax, [esp + 0x18]
push eax
push ebx
call fcn.004b4e50
add esp, 8
test eax, eax
js 0x4b5a2b
push 1
push ebx
call fcn.004b46b0
add esp, 8
test eax, eax
jne 0x4b5a60
pop esi
or eax, 0xffffffff
pop ebx
add esp, 0x18
ret
push 1
push ebx
call fcn.004b46b0
add esp, 8
test eax, eax
je 0x4b5a2b
cmp byte [eax], 4
jne 0x4b5ac8
push esi
push ebx
call fcn.004b6250
add esp, 8
test eax, eax
js 0x4b5a2b
push 1
push ebx
call fcn.004b46b0
add esp, 8
test eax, eax
je 0x4b5a2b
mov al, byte [eax]
test al, al
jne 0x4b5ad6
pop esi
xor eax, eax
pop ebx
add esp, 0x18
ret
cmp al, 5
jne 0x4b5a2b
push ebp
lea ebp, [esi + 0x78]
push ebp
push ebx
call fcn.004b4e50
add esp, 8
test eax, eax
js 0x4b5b1d
cmp dword [ebp + 4], 0
jb 0x4b5b01
ja 0x4b5b1d
cmp dword [ebp], 0x5f5e100
ja 0x4b5b1d
push 0x34
push dword [ebp]
call dword [sym.imp.MSVCRT.dll_calloc]
add esp, 8
mov dword [esp + 0x10], eax
mov dword [esi + 0x80], eax
test eax, eax
jne 0x4b5b27
pop ebp
pop esi
or eax, 0xffffffff
pop ebx
add esp, 0x18
ret
push edi
push 1
push ebx
mov dword [esp + 0x3c], 0
call fcn.004b46b0
add esp, 8
test eax, eax
je 0x4b5c31
movzx edi, byte [eax]
test edi, edi
je 0x4b5eb3
lea eax, [esp + 0x20]
push eax
push ebx
call fcn.004b4e50
add esp, 8
test eax, eax
js 0x4b5c31
mov eax, dword [esi + 0x54]
cmp eax, dword [esp + 0x24]
jb 0x4b5c31
mov esi, dword [esp + 0x20]
ja 0x4b5b84
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x50], esi
jb 0x4b5c31
lea eax, [edi - 0xe]
cmp eax, 0xb
ja case.0x4b5b90.22
jmp dword [eax*4 + 0x4b60a0]
mov esi, dword [esp + 0x30]
cmp dword [esi + 8], 0
jne 0x4b5c31
push 1
push dword [ebp]
call dword [sym.imp.MSVCRT.dll_calloc]
add esp, 8
mov dword [esi + 8], eax
test eax, eax
je 0x4b5c31
push dword [ebp]
push eax
push ebx
call fcn.004b50c0
add esp, 0xc
test eax, eax
js 0x4b5c31
mov esi, dword [ebp + 4]
xor edi, edi
mov edx, dword [ebp]
xor eax, eax
mov dword [esp + 0x34], edi
test esi, esi
jb 0x4b5dc4
ja 0x4b5beb
test edx, edx
je 0x4b5dc4
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx + 8]
cmp byte [ecx + eax], 0
je 0x4b5bf9
inc edi
mov dword [esp + 0x34], 0
inc eax
cmp dword [esp + 0x34], esi
jb 0x4b5bf2
ja 0x4b5c0e
cmp eax, edx
jb 0x4b5bf2
mov dword [esp + 0x34], edi
jmp 0x4b5dc4
mov edi, dword [esp + 0x34]
test edi, edi
jg 0x4b5c3c
push esi
push ebx
call fcn.004b46b0
add esp, 8
test eax, eax
jne 0x4b5dc4
pop edi
pop ebp
pop esi
or eax, 0xffffffff
pop ebx
add esp, 0x18
ret
mov esi, dword [esp + 0x30]
cmp dword [esi + 0xc], 0
jne 0x4b5c31
push 1
push edi
call dword [sym.imp.MSVCRT.dll_calloc]
mov dword [esi + 0xc], eax
add esp, 8
test eax, eax
je 0x4b5c31
push edi
push eax
push ebx
call fcn.004b50c0
add esp, 0xc
test eax, eax
js 0x4b5c31
jmp 0x4b5dc4
mov edi, dword [esp + 0x34]
test edi, edi
jle case.0x4b5b90.22
mov esi, dword [esp + 0x30]
cmp dword [esi + 0x10], 0
jne 0x4b5c31
push 1
push edi
call dword [sym.imp.MSVCRT.dll_calloc]
mov dword [esi + 0x10], eax
jmp 0x4b5c52
push edi
mov edi, dword [esp + 0x34]
push edi
push ebx
call fcn.004b6780
jmp 0x4b5c61
push 1
push ebx
call fcn.004b46b0
add esp, 8
test eax, eax
je 0x4b5c31
lea ebx, [esi - 1]
test bl, 1
jne 0x4b5c31
mov ecx, dword [ebp]
xor edx, edx
mov eax, dword [ebp + 4]
shld eax, ecx, 2
shl ecx, 2
cmp edx, eax
jb 0x4b5c31
ja 0x4b5cd7
cmp ebx, ecx
jb 0x4b5c31
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x88], edx
jne 0x4b5c31
push ebx
call dword [sym.imp.MSVCRT.dll_malloc]
mov ecx, dword [esp + 0x14]
mov ebp, eax
add esp, 4
mov dword [ecx + 0x88], ebp
test ebp, ebp
je 0x4b5c31
mov edi, ebx
test ebx, ebx
je 0x4b5d49
jmp 0x4b5d10
mov esi, 0x10000
cmp edi, 0x10000
ja 0x4b5d1f
mov esi, edi
push esi
push dword [esp + 0x30]
call fcn.004b46b0
add esp, 8
test eax, eax
je 0x4b5c31
push esi
push eax
push ebp
call sub.MSVCRT.dll_memcpy
add esp, 0xc
add ebp, esi
sub edi, esi
jne 0x4b5d10
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x88]
lea ebp, [ecx + 0x78]
xor esi, esi
cmp dword [ebp + 4], esi
jb 0x4b5dc0
ja 0x4b5d60
cmp dword [ebp], esi
jbe 0x4b5dc0
mov edx, dword [esp + 0x14]
add edx, 4
jmp 0x4b5d70
mov dword [edx], eax
cmp ebx, 2
jb 0x4b5c31
jmp 0x4b5d80
cmp byte [eax], 0
jne 0x4b5d8b
cmp byte [eax + 1], 0
je 0x4b5da1
sub ebx, 2
add eax, 2
cmp ebx, 2
jae 0x4b5d80
pop edi
pop ebp
pop esi
or eax, 0xffffffff
pop ebx
add esp, 0x18
ret
mov ecx, eax
sub ebx, 2
sub ecx, dword [edx]
add eax, 2
mov dword [edx - 4], ecx
inc esi
xor ecx, ecx
add edx, 0x34
cmp ecx, dword [ebp + 4]
jb 0x4b5d70
ja 0x4b5dc0
cmp esi, dword [ebp]
jb 0x4b5d70
mov ebx, dword [esp + 0x2c]
push 1
push ebx
call fcn.004b46b0
add esp, 8
test eax, eax
je 0x4b5c31
mov esi, dword [esp + 0x10]
jmp 0x4b5b43
push 2
push ebx
call fcn.004b46b0
add esp, 8
test eax, eax
je 0x4b5c31
mov edi, dword [esp + 0x30]
movzx esi, byte [eax]
cmp dword [edi + 0x14], 0
jne 0x4b5c31
push 1
push dword [ebp]
call dword [sym.imp.MSVCRT.dll_calloc]
add esp, 8
mov dword [edi + 0x14], eax
test eax, eax
je 0x4b5c31
push dword [ebp]
test esi, esi
je 0x4b5e31
push 1
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
jmp 0x4b5e43
push eax
push ebx
call fcn.004b50c0
add esp, 0xc
test eax, eax
js 0x4b5c31
xor esi, esi
cmp dword [ebp + 4], esi
jb 0x4b5dc4
ja 0x4b5e59
cmp dword [ebp], esi
jbe 0x4b5dc4
mov edi, dword [esp + 0x14]
add edi, 0x30
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x14]
cmp byte [esi + eax], 0
je 0x4b5e8b
push 4
push ebx
call fcn.004b46b0
add esp, 8
test eax, eax
je 0x4b5c31
push eax
call fcn.004b2b10
add esp, 4
mov dword [edi], eax
xor eax, eax
inc esi
add edi, 0x34
cmp eax, dword [ebp + 4]
jb 0x4b5e60
ja 0x4b5dc4
cmp esi, dword [ebp]
jb 0x4b5e60
jmp 0x4b5dc4
test esi, esi
je 0x4b5dc4
jmp case.0x4b5b90.22
mov ebx, dword [esp + 0x10]
xor edi, edi
mov eax, dword [esi + 0x28]
xor ecx, ecx
xor ebp, ebp
mov dword [esp + 0x18], eax
xor esi, esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x1c], ecx
cmp dword [ebx + 0x7c], ecx
jb 0x4b6096
ja 0x4b5eea
cmp dword [ebx + 0x78], ecx
jbe 0x4b6096
mov edx, dword [esp + 0x14]
add edx, 0x2c
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 8]
test eax, eax
je 0x4b5f02
cmp byte [eax + ecx], 0
jne 0x4b5f06
or dword [edx - 0x1c], 0x10
movzx ecx, word [edx + 6]
mov ebx, dword [edx - 0x1c]
mov dword [edx], ecx
test bl, 0x10
je 0x4b5f49
mov eax, dword [esp + 0x10]
cmp edi, dword [eax + 0x38]
jae 0x4b5c31
test ecx, ecx
jne 0x4b5f2b
mov dword [edx], 0x81b6
mov ecx, eax
mov eax, dword [ecx + 0x40]
cmp byte [edi + eax], 0
je 0x4b5f3c
or ebx, 8
mov dword [edx - 0x1c], ebx
mov dword [edx - 0x20], edi
inc edi
mov dword [esp + 0x20], edi
jmp 0x4b5fe5
mov eax, dword [esp + 0x30]
mov edi, dword [eax + 0xc]
test edi, edi
jne 0x4b5f59
lea eax, [edi + 1]
jmp 0x4b5f6a
mov ebx, dword [esp + 0x34]
xor eax, eax
cmp byte [edi + ebx], al
sete al
inc ebx
mov dword [esp + 0x34], ebx
test ecx, ecx
jne 0x4b5f80
neg eax
sbb eax, eax
and eax, 0xffffc049
add eax, 0x81b6
mov dword [edx], eax
jmp 0x4b5fa0
test eax, eax
je 0x4b5fa0
mov eax, ecx
and eax, 0xf000
cmp eax, 0x4000
je 0x4b5fa0
and ecx, 0xffff4fff
or ecx, 0x4000
mov dword [edx], ecx
mov eax, dword [edx]
and eax, 0xf000
cmp eax, 0x4000
jne 0x4b5fda
mov ecx, dword [edx - 0x2c]
cmp ecx, 2
jb 0x4b5fda
mov eax, dword [edx - 0x28]
cmp byte [ecx + eax - 2], 0x2f
jne 0x4b5fc7
cmp byte [ecx + eax - 1], 0
je 0x4b5fda
mov byte [ecx + eax], 0x2f
mov eax, dword [edx - 0x2c]
mov ecx, dword [edx - 0x28]
mov byte [ecx + eax + 1], 0
add dword [edx - 0x2c], 2
mov ecx, dword [esp + 0x10]
mov dword [edx - 0x20], 0xffffffff
test byte [edx + 4], 1
je 0x4b5ff1
and dword [edx], 0xffffff6d
mov ebx, dword [edx - 0x1c]
and ebx, 0x10
jne 0x4b6006
test ebp, ebp
jne 0x4b6045
mov dword [edx - 0x24], 0xffffffff
jmp 0x4b606f
test ebp, ebp
jne 0x4b6045
mov edi, dword [ecx + 0x20]
mov ebp, dword [ecx + 0x24]
mov ecx, dword [esp + 0x18]
imul eax, esi, 0x68
add ecx, 0x50
add ecx, eax
lea esp, [esp]
xor eax, eax
cmp eax, ebp
ja 0x4b5c31
jb 0x4b6034
cmp esi, edi
jae 0x4b5c31
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne 0x4b6041
inc esi
add ecx, 0x68
jmp 0x4b6020
mov ebp, dword [esp + 0x2c]
mov dword [edx - 0x24], esi
test ebx, ebx
je 0x4b606f
mov ebx, dword [esp + 0x18]
inc ebp
imul eax, esi, 0x68
xor ecx, ecx
mov dword [esp + 0x2c], ebp
cmp ecx, dword [eax + ebx + 0x54]
jb 0x4b606f
ja 0x4b6068
cmp ebp, dword [eax + ebx + 0x50]
jb 0x4b606f
inc esi
xor ebp, ebp
mov dword [esp + 0x2c], ebp
mov ebx, dword [esp + 0x10]
xor eax, eax
mov ecx, dword [esp + 0x1c]
add edx, 0x34
inc ecx
mov dword [esp + 0x1c], ecx
cmp eax, dword [ebx + 0x7c]
ja 0x4b6096
jb 0x4b608d
cmp ecx, dword [ebx + 0x78]
jae 0x4b6096
mov edi, dword [esp + 0x20]
jmp 0x4b5ef1
pop edi
pop ebp
pop esi
xor eax, eax
pop ebx
add esp, 0x18
ret