Function at 0x49c9e8
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 0x49cddc
cmp al, 0x5c
je 0x49cddc
and eax, 0xffffffdf
sub eax, 0x41
cmp al, 0x19
jbe 0x49cdc8
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 0x49cdf4
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 0x49ce07
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 0x49ce1a
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 0x49cdec
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 0x49cf86
mov ebx, dword [esp + 0x78]
test ebx, ebx
jne 0x49ce24
mov cl, byte [esp + 0x4f]
mov edx, eax
mov ebx, dword [esp + 0x80]
jmp 0x49cb20
mov cl, byte [ebx]
mov edx, eax
lea eax, [edx + 1]
inc ebx
mov byte [eax - 1], cl
test cl, cl
jne 0x49cb1c
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x49cb4e
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 0x49cb40
mov edi, dword [esp + 0x40]
test edi, edi
je 0x49cb6e
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 0x49cb60
mov esi, dword [esp + 0x44]
test esi, esi
je 0x49cb8e
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 0x49cb80
mov ebx, dword [esp + 0x48]
test ebx, ebx
je 0x49cbae
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 0x49cba0
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 0x49cbb8
mov eax, dword [esp + 0x70]
mov esi, dword [eax]
test esi, esi
je 0x49cf7d
mov ebx, eax
mov eax, dword [esi]
test eax, eax
je 0x49cbf3
mov dword [esp + 4], ebp
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x49cdb6
js 0x49cbfa
lea ebx, [esi + 0xc]
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x49cbd4
mov eax, dword [esp + 0x98]
test eax, eax
je 0x49cdb4
mov ecx, dword [esp + 0x78]
test ecx, ecx
jne 0x49ce6c
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 0x49cf8d
mov eax, dword [esp + 0x3c]
mov dword [eax], ebp
cmp byte [esp + 0x44], 0
je 0x49cf4c
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 0x49ceb9
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 0x49ccd6
dec ebp
cmp ebp, 0xffffffff
je 0x49cebc
test dword [esp + 0x40], ebp
jne 0x49cccc
mov eax, ebp
and eax, 3
cmp eax, 3
je 0x49cccc
cmp byte [esp + 0x44], 0
je 0x49ced0
xor esi, esi
test esi, esi
je 0x49cd9f
nop
cmp esi, dword [esp + 0x38]
jae 0x49cccc
mov dword [esp + 4], 0
mov dword [esp], esi
call sub.msvcrt.dll_strchr
lea esi, [eax + 1]
cmp dword [esp + 0x38], esi
jbe 0x49cccc
test esi, esi
je 0x49cccc
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.0049c9e8
mov edi, dword [esp + 0x3c]
mov dword [edi + ebx*4 + 0xc], eax
test esi, esi
jne 0x49ccfc
mov edx, dword [esp + 0x78]
test edx, edx
je 0x49cccc
mov esi, dword [esp + 0x74]
jmp 0x49cd1b
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 0x49ca1a
lea esi, [esi]
mov dword [esp + 0x78], 0
jmp 0x49ca1a
xor edx, edx
jmp 0x49cac4
xor ebp, ebp
mov eax, dword [esp + 0x7c]
and eax, 2
mov dword [esp + 0x40], eax
jne 0x49ca66
xor esi, esi
mov eax, dword [esp + 0x7c]
and eax, 1
mov dword [esp + 0x44], eax
jne 0x49ca8b
xor ebx, ebx
jmp 0x49ca9f
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 0x49ce54
add edx, esi
lea esi, [edx + 1]
mov byte [edx], 0x3b
jmp 0x49ce38
mov edx, dword [esp + 0x78]
add edx, ebp
mov byte [edx - 1], 0x2f
mov eax, dword [esp + 0x80]
mov cl, byte [eax]
jmp 0x49cb10
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 0x49ce90
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x3c]
cmp esi, 1
seta al
mov byte [esp + 0x44], al
movzx edx, al
jmp 0x49cc21
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.0049c9e8
mov edx, dword [esp + 0x3c]
mov dword [edx + ebx*4 + 0x10], eax
mov ebx, edi
jmp 0x49cccc
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 0x49ccaa
mov ebx, dword [esp + 0x70]
jmp 0x49cbfa
xor eax, eax
jmp 0x49cdc0
mov dword [esp], ebp
call sub.msvcrt.dll_free
xor eax, eax
jmp 0x49cdc0