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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [esp + 0x80]
mov al, byte [eax]
mov byte [esp + 0x4f], al
cmp al, 0x2f
je 0x4b2078
cmp al, 0x5c
je 0x4b2078
and eax, 0xffffffdf
sub eax, 0x41
cmp al, 0x19
jbe 0x4b2064
mov ebp, 0xffffffff
xor eax, eax
mov ecx, ebp
mov edi, dword [esp + 0x80]
repne scasb al, byte es:[edi]
not ecx
lea edi, [ecx - 1]
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0x7c]
and edi, 4
mov dword [esp + 0x3c], edi
je 0x4b2090
mov ecx, ebp
mov edi, dword [esp + 0x84]
repne scasb al, byte es:[edi]
mov ebp, ecx
not ebp
mov eax, dword [esp + 0x7c]
and eax, 2
mov dword [esp + 0x40], eax
je 0x4b20a3
xor eax, eax
mov ecx, 0xffffffff
mov edi, dword [esp + 0x88]
repne scasb al, byte es:[edi]
mov esi, ecx
not esi
mov eax, dword [esp + 0x7c]
and eax, 1
mov dword [esp + 0x44], eax
je 0x4b20b6
xor eax, eax
mov ecx, 0xffffffff
mov edi, dword [esp + 0x8c]
repne scasb al, byte es:[edi]
mov ebx, ecx
not ebx
mov eax, dword [esp + 0x7c]
and eax, 8
mov dword [esp + 0x48], eax
je 0x4b2088
xor eax, eax
mov ecx, 0xffffffff
mov edi, dword [esp + 0x90]
repne scasb al, byte es:[edi]
mov edx, ecx
not edx
xor eax, eax
mov ecx, 0xffffffff
mov edi, dword [esp + 0x94]
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x78]
lea eax, [eax + edi + 2]
add ebp, eax
add esi, ebp
add ebx, esi
sub edx, ecx
lea eax, [edx + ebx - 2]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov ebp, eax
test eax, eax
je 0x4b2222
mov ebx, dword [esp + 0x78]
test ebx, ebx
jne 0x4b20c0
mov cl, byte [esp + 0x4f]
mov edx, eax
mov ebx, dword [esp + 0x80]
jmp 0x4b1dbc
mov cl, byte [ebx]
mov edx, eax
lea eax, [edx + 1]
inc ebx
mov byte [eax - 1], cl
test cl, cl
jne 0x4b1db8
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x4b1dea
mov byte [edx], 0x5f
mov ecx, dword [esp + 0x84]
lea esi, [esi]
mov edx, eax
inc eax
inc ecx
mov bl, byte [ecx - 1]
mov byte [eax - 1], bl
test bl, bl
jne 0x4b1ddc
mov edi, dword [esp + 0x40]
test edi, edi
je 0x4b1e0a
mov byte [edx], 0x2e
mov ecx, dword [esp + 0x88]
mov edx, eax
inc eax
inc ecx
mov bl, byte [ecx - 1]
mov byte [eax - 1], bl
test bl, bl
jne 0x4b1dfc
mov esi, dword [esp + 0x44]
test esi, esi
je 0x4b1e2a
mov byte [edx], 0x2e
mov ecx, dword [esp + 0x8c]
mov edx, eax
inc eax
inc ecx
mov bl, byte [ecx - 1]
mov byte [eax - 1], bl
test bl, bl
jne 0x4b1e1c
mov ebx, dword [esp + 0x48]
test ebx, ebx
je 0x4b1e4a
mov byte [edx], 0x40
mov ecx, dword [esp + 0x90]
mov edx, eax
inc eax
inc ecx
mov bl, byte [ecx - 1]
mov byte [eax - 1], bl
test bl, bl
jne 0x4b1e3c
mov byte [edx], 0x2f
mov edx, dword [esp + 0x94]
inc eax
inc edx
mov cl, byte [edx - 1]
mov byte [eax - 1], cl
test cl, cl
jne 0x4b1e54
mov eax, dword [esp + 0x70]
mov esi, dword [eax]
test esi, esi
je 0x4b2219
mov ebx, eax
mov eax, dword [esi]
test eax, eax
je 0x4b1e8f
mov dword [esp + 4], ebp
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x4b2052
js 0x4b1e96
lea ebx, [esi + 0xc]
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x4b1e70
mov eax, dword [esp + 0x98]
test eax, eax
je 0x4b2050
mov ecx, dword [esp + 0x78]
test ecx, ecx
jne 0x4b2108
mov byte [esp + 0x44], 0
xor edx, edx
mov esi, 1
mov eax, dword [esp + 0x7c]
and eax, 0xffffaaaa
sar eax, 1
mov ecx, dword [esp + 0x7c]
and ecx, 0x5555
add ecx, eax
mov eax, ecx
and eax, 0xffffcccc
sar eax, 2
and ecx, 0x3333
add eax, ecx
mov ecx, eax
sar ecx, 4
add eax, ecx
and eax, 0xf0f
mov ecx, eax
sar ecx, 8
add ecx, eax
mov eax, esi
shl eax, cl
lea eax, [edx + eax + 5]
shl eax, 2
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [esp + 0x3c], eax
test eax, eax
je 0x4b2229
mov eax, dword [esp + 0x3c]
mov dword [eax], ebp
cmp byte [esp + 0x44], 0
je 0x4b21e8
mov edi, dword [esp + 0x3c]
mov dword [edi + 4], 1
mov dword [edi + 8], 0
mov eax, dword [ebx]
mov dword [edi + 0xc], eax
mov dword [ebx], edi
mov ebp, dword [esp + 0x7c]
test ebp, ebp
js 0x4b2155
mov eax, dword [esp + 0x7c]
not eax
mov dword [esp + 0x40], eax
xor ebx, ebx
mov eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
mov dword [esp + 0x38], eax
jmp 0x4b1f72
dec ebp
cmp ebp, 0xffffffff
je 0x4b2158
test dword [esp + 0x40], ebp
jne 0x4b1f68
mov eax, ebp
and eax, 3
cmp eax, 3
je 0x4b1f68
cmp byte [esp + 0x44], 0
je 0x4b216c
xor esi, esi
test esi, esi
je 0x4b203b
nop
cmp esi, dword [esp + 0x38]
jae 0x4b1f68
mov dword [esp + 4], 0
mov dword [esp], esi
call sub.msvcrt.dll_strchr
lea esi, [eax + 1]
cmp dword [esp + 0x38], esi
jbe 0x4b1f68
test esi, esi
je 0x4b1f68
inc ebx
xor eax, eax
mov ecx, 0xffffffff
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
mov dword [esp + 0x28], 1
mov eax, dword [esp + 0x94]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ebp
mov dword [esp + 8], ecx
mov dword [esp + 4], esi
mov eax, dword [esp + 0x70]
mov dword [esp], eax
call fcn.004b1c84
mov edi, dword [esp + 0x3c]
mov dword [edi + ebx*4 + 0xc], eax
test esi, esi
jne 0x4b1f98
mov edx, dword [esp + 0x78]
test edx, edx
je 0x4b1f68
mov esi, dword [esp + 0x74]
jmp 0x4b1fb7
xor esi, esi
mov dword [esp], ebp
call sub.msvcrt.dll_free
mov eax, esi
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x80]
cmp byte [eax + 1], 0x3a
jne 0x4b1cb6
lea esi, [esi]
mov dword [esp + 0x78], 0
jmp 0x4b1cb6
xor edx, edx
jmp 0x4b1d60
xor ebp, ebp
mov eax, dword [esp + 0x7c]
and eax, 2
mov dword [esp + 0x40], eax
jne 0x4b1d02
xor esi, esi
mov eax, dword [esp + 0x7c]
and eax, 1
mov dword [esp + 0x44], eax
jne 0x4b1d27
xor ebx, ebx
jmp 0x4b1d3b
mov edi, eax
mov esi, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
rep movsb byte es:[edi], byte [esi]
mov ebx, dword [esp + 0x78]
mov esi, eax
xor eax, eax
mov ecx, 0xffffffff
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
lea edx, [ecx - 1]
sub ebx, ecx
je 0x4b20f0
add edx, esi
lea esi, [edx + 1]
mov byte [edx], 0x3b
jmp 0x4b20d4
mov edx, dword [esp + 0x78]
add edx, ebp
mov byte [edx - 1], 0x2f
mov eax, dword [esp + 0x80]
mov cl, byte [eax]
jmp 0x4b1dac
mov eax, dword [esp + 0x78]
mov edi, eax
mov eax, dword [esp + 0x74]
mov ecx, eax
xor esi, esi
mov edx, 0xffffffff
xor eax, eax
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebp
mov ebx, ecx
mov ebp, edi
lea esi, [esi]
mov ecx, edx
mov edi, ebx
repne scasb al, byte es:[edi]
not ecx
add ebx, ecx
inc esi
sub ebp, ecx
jne 0x4b212c
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x3c]
cmp esi, 1
seta al
mov byte [esp + 0x44], al
movzx edx, al
jmp 0x4b1ebd
xor ebx, ebx
nop
mov eax, dword [esp + 0x3c]
mov dword [eax + ebx*4 + 0x10], 0
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
lea edi, [ebx + 1]
mov dword [esp + 0x28], 1
mov eax, dword [esp + 0x94]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ebp
mov eax, dword [esp + 0x78]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp], eax
call fcn.004b1c84
mov edx, dword [esp + 0x3c]
mov dword [edx + ebx*4 + 0x10], eax
mov ebx, edi
jmp 0x4b1f68
mov eax, dword [esp + 0x7c]
and eax, 3
cmp eax, 3
sete al
movzx eax, al
mov edi, dword [esp + 0x3c]
mov dword [edi + 4], eax
mov dword [edi + 8], 0
mov eax, dword [ebx]
mov dword [edi + 0xc], eax
mov dword [ebx], edi
mov eax, dword [esp + 0x7c]
lea ebp, [eax - 1]
jmp 0x4b1f46
mov ebx, dword [esp + 0x70]
jmp 0x4b1e96
xor eax, eax
jmp 0x4b205c
mov dword [esp], ebp
call sub.msvcrt.dll_free
xor eax, eax
jmp 0x4b205c