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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x74
mov ebx, ecx
movzx eax, byte [esp + 0x90]
mov ecx, dword [esp + 0x8c]
mov edi, dword [esp + 0x88]
xor al, 1
movzx ebp, al
lea eax, [ebp*2]
mov dword [esp], ecx
mov dword [esp + 0x34], eax
mov dword [esp + 4], eax
mov ecx, esp
push 0
push 1
push 8
call fcn.004eec50
test edi, edi
mov dword [esp + 0xc], ebx
je 0x4fce02
cmp byte [edi], 0
je 0x4fce02
mov ebx, dword [esp]
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
sub edx, ecx
cmp eax, edx
jbe 0x4fcdc3
mov ecx, ebx
push eax
push edi
call fcn.0046b680
jmp 0x4fcdd7
test eax, eax
je 0x4fcdd7
push eax
push edi
push ecx
mov edi, eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
add dword [ebx + 0x10], edi
mov ecx, dword [esp]
mov edx, dword [ecx + 0xc]
mov eax, dword [ecx + 0x10]
sub edx, eax
cmp edx, 1
ja 0x4fcdf5
push 2
push 0x52608d
call fcn.0046b680
jmp 0x4fcdfe
mov word [eax], 0x203a
add dword [ecx + 0x10], 2
mov ebx, dword [esp + 0xc]
movzx eax, byte [ebx + 8]
test al, 1
je 0x4fce16
mov edx, dword [ebx + 0xc]
test edx, edx
jne 0x4fce22
jmp 0x4fcef6
mov edx, eax
shr edx, 1
test edx, edx
je 0x4fcef6
cmp edx, 1
jne 0x4fce5f
lea ecx, [ebx + 9]
test al, 1
mov edi, dword [ebx + 0x10]
cmovne ecx, edi
cmp byte [ecx], 0x2d
jne 0x4fce62
mov ecx, dword [esp]
mov edx, dword [ecx + 0xc]
mov eax, dword [ecx + 0x10]
sub edx, eax
cmp edx, 6
ja 0x4fd109
push 7
push str._stdin_
call fcn.0046b680
cmp dword [ebx + 0x14], 0xffffffff
jne 0x4fce82
jmp 0x4fceda
mov edi, dword [ebx + 0x10]
mov ecx, dword [esp + 0xc]
lea ebx, [ecx + 9]
test al, 1
mov ecx, dword [esp]
cmovne ebx, edi
push edx
push ebx
mov ebx, dword [esp + 0x14]
call fcn.0046b680
cmp dword [ebx + 0x14], 0xffffffff
je 0x4fceda
mov ecx, dword [esp]
mov eax, dword [ecx + 0x10]
cmp eax, dword [ecx + 0xc]
jae 0x4fce98
lea edx, [eax + 1]
mov dword [ecx + 0x10], edx
mov byte [eax], 0x3a
jmp 0x4fce9f
push 0x3a
call fcn.0046b5f0
mov ecx, dword [esp]
push dword [ebx + 0x14]
call fcn.0046abf0
cmp dword [ebx + 0x18], 0xffffffff
je 0x4fceda
mov ecx, dword [esp]
mov eax, dword [ecx + 0x10]
cmp eax, dword [ecx + 0xc]
jae 0x4fcec6
lea edx, [eax + 1]
mov dword [ecx + 0x10], edx
mov byte [eax], 0x3a
jmp 0x4fcecd
push 0x3a
call fcn.0046b5f0
mov eax, dword [ebx + 0x18]
inc eax
mov ecx, dword [esp]
push eax
call fcn.0046abf0
mov ecx, dword [esp]
mov edx, dword [ecx + 0xc]
mov eax, dword [ecx + 0x10]
sub edx, eax
cmp edx, 1
ja 0x4fcf0c
push 2
push 0x52608d
call fcn.0046b680
mov ecx, esp
call fcn.004eecd0
cmp byte [esp + 0x94], 0
jne 0x4fcf2a
jmp case.default.0x4fcf3d
mov word [eax], 0x203a
add dword [ecx + 0x10], 2
mov ecx, esp
call fcn.004eecd0
cmp byte [esp + 0x94], 0
je case.default.0x4fcf3d
mov eax, dword [ebx + 0x1c]
cmp eax, 3
ja case.default.0x4fcf3d
mov ecx, dword [esp + 0x8c]
jmp dword [eax*4 + 0x52612c]
mov dword [esp + 0x64], 0x526068
mov dword [esp + 0x68], 0
sub esp, 0x10
movsd xmm0, qword [esp + 0x74]
movsd qword [esp + 4], xmm0
mov dword [esp + 0xc], ebp
mov dword [esp], ecx
call fcn.004ee790
jmp 0x4fcff9
mov dword [esp + 0x4c], 0x526068
mov dword [esp + 0x50], 0
sub esp, 0x10
movsd xmm0, qword [esp + 0x5c]
movsd qword [esp + 4], xmm0
mov dword [esp + 0xc], ebp
mov dword [esp], ecx
call fcn.004eeb50
jmp 0x4fcff9
mov dword [esp + 0x54], 0x526068
mov dword [esp + 0x58], 0
sub esp, 0x10
movsd xmm0, qword [esp + 0x64]
movsd qword [esp + 4], xmm0
mov dword [esp + 0xc], ebp
mov dword [esp], ecx
call fcn.004eea10
jmp 0x4fcff9
mov dword [esp + 0x5c], 0x526068
mov dword [esp + 0x60], 0
sub esp, 0x10
movsd xmm0, qword [esp + 0x6c]
movsd qword [esp + 4], xmm0
mov dword [esp + 0xc], ebp
mov dword [esp], ecx
call fcn.004ee8d0
add esp, 0x10
mov eax, dword [esp + 0x8c]
mov dword [esp], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
mov ecx, esp
push 0
push 1
push 8
call fcn.004eec50
mov ecx, dword [esp]
movzx eax, byte [ebx + 0x20]
test al, 1
je 0x4fd02e
mov edx, dword [ebx + 0x28]
mov eax, dword [ebx + 0x24]
jmp 0x4fd033
lea edx, [ebx + 0x21]
shr eax, 1
push eax
push edx
call fcn.0046b680
mov ecx, dword [esp]
mov eax, dword [ecx + 0x10]
cmp eax, dword [ecx + 0xc]
jae 0x4fd060
lea edx, [eax + 1]
mov dword [ecx + 0x10], edx
mov byte [eax], 0xa
mov ecx, esp
call fcn.004eecd0
cmp dword [ebx + 0x14], 0xffffffff
jne 0x4fd078
jmp 0x4fd6e1
push 0xa
call fcn.0046b5f0
mov ecx, esp
call fcn.004eecd0
cmp dword [ebx + 0x14], 0xffffffff
je 0x4fd6e1
cmp dword [ebx + 0x18], 0xffffffff
je 0x4fd6e1
movzx eax, byte [ebx + 0x2c]
lea ecx, [ebx + 0x2d]
test al, 1
je 0x4fd0d6
mov edx, dword [ebx + 0x34]
mov edi, dword [ebx + 0x30]
test edi, edi
mov dword [esp + 0x30], edi
je 0x4fd0e4
xor eax, eax
nop dword [eax]
cmp byte [edx + eax], 0
js 0x4fd0f7
inc eax
cmp edi, eax
jne 0x4fd0a0
lea ebx, [edi + 1]
cmp ebx, 0xfffffff8
jae 0x4fd6fb
mov dword [esp + 0x2c], ecx
cmp ebx, 0xb
jae 0x4fd129
mov eax, ebx
add al, bl
mov byte [esp], al
lea ebp, [esp + 1]
test ebx, ebx
jne 0x4fd14a
xor ebx, ebx
jmp 0x4fd156
shr eax, 1
mov edx, ecx
mov edi, eax
test edi, edi
mov dword [esp + 0x30], edi
jne 0x4fd09b
mov dword [esp + 0x2c], ecx
mov byte [esp], 2
mov ebx, 1
lea ebp, [esp + 1]
jmp 0x4fd14a
mov ecx, dword [esp + 0x8c]
push edi
call fcn.004fdc50
jmp 0x4fd6de
mov dword [eax + 3], 0x3e6e6964
mov dword [eax], 0x6474733c
add dword [ecx + 0x10], 7
cmp dword [ebx + 0x14], 0xffffffff
jne 0x4fce82
jmp 0x4fceda
mov edi, ebx
or edi, 7
lea eax, [edi + 1]
push eax
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov ebp, eax
mov dword [esp + 8], eax
add edi, 2
mov dword [esp], edi
mov dword [esp + 4], ebx
push ebx
push 0x20
push ebp
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov byte [ebp + ebx], 0
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x38]
mov ebx, dword [eax + 0x3c]
cmp edi, ebx
je 0x4fd1b6
lea esi, [esp + 1]
jmp 0x4fd177
add edi, 8
cmp edi, ebx
je 0x4fd1b6
movzx eax, byte [esp]
test al, 1
je 0x4fd190
mov edx, dword [esp + 8]
mov eax, dword [esp + 4]
jmp 0x4fd194
shr eax, 1
mov edx, esi
mov ecx, dword [edi]
add ecx, edx
mov ebp, dword [edi + 4]
cmp eax, ebp
cmovb ebp, eax
add ebp, edx
sub ebp, ecx
test ebp, ebp
jle 0x4fd170
push ebp
push 0x7e
push ecx
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
jmp 0x4fd170
xorps xmm0, xmm0
movsd qword [esp + 0x1c], xmm0
mov dword [esp + 0x24], 0
mov edi, dword [esp + 0xc]
mov eax, dword [edi + 0x48]
movzx ebx, byte [edi + 0x2c]
test bl, 1
je 0x4fd1ea
mov ebx, dword [edi + 0x30]
mov edx, dword [esp + 0x30]
mov ecx, dword [edi + 0x18]
test eax, eax
jne 0x4fd1fb
jmp 0x4fd397
shr ebx, 1
mov edx, dword [esp + 0x30]
mov ecx, dword [edi + 0x18]
test eax, eax
je 0x4fd397
mov ebp, dword [edi + 4]
mov edx, ebx
mov ebx, dword [edi + 0x44]
sub ebp, ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c], ebp
lea ecx, [edx + ebp]
mov dword [esp + 0x28], ecx
add ebx, 9
shl eax, 2
lea ebp, [eax + eax*4]
lea edi, [esp + 0x14]
mov dword [esp + 0x10], 0
jmp 0x4fd240
lea edi, [esp + 0x14]
add ebx, 0x14
add ebp, 0xffffffec
je 0x4fd38c
movzx eax, byte [ebx - 1]
test al, 1
je 0x4fd250
mov ecx, dword [ebx + 7]
mov eax, dword [ebx + 3]
jmp 0x4fd254
shr eax, 1
mov ecx, ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x6c], 0x526126
mov dword [esp + 0x70], 3
sub esp, 0xc
movsd xmm0, qword [esp + 0x78]
movsd qword [esp], xmm0
mov dword [esp + 8], 0
mov ecx, edi
call fcn.00461d40
cmp eax, 0xffffffff
jne 0x4fd234
mov edi, dword [ebx - 9]
cmp dword [esp + 0x28], edi
jb 0x4fd230
mov ecx, dword [ebx - 5]
mov eax, dword [esp + 0x3c]
cmp eax, ecx
ja 0x4fd230
mov dword [esp + 0x48], ecx
sub edi, eax
mov eax, 0
cmovb edi, eax
mov eax, dword [esp + 0x10]
lea ecx, [eax + 1]
cmp edi, eax
cmovae ecx, edi
mov dword [esp + 0x38], ecx
movzx ecx, byte [ebx - 1]
mov eax, ecx
shr eax, 1
and cl, 1
mov edx, dword [ebx + 3]
mov dword [esp + 0x44], edx
cmove edx, eax
mov dword [esp + 0x10], edx
movzx edx, byte [esp + 0x1c]
test dl, 1
je 0x4fd2e9
mov edx, dword [esp + 0x20]
jmp 0x4fd2eb
shr edx, 1
mov esi, dword [esp + 0x10]
add esi, dword [esp + 0x38]
mov dword [esp + 0x10], esi
cmp esi, edx
mov edx, dword [esp + 0x44]
jbe 0x4fd31c
lea ecx, [esp + 0x1c]
push 0x20
push dword [esp + 0x14]
call fcn.00504a80
movzx eax, byte [ebx - 1]
mov edx, dword [ebx + 3]
mov ecx, eax
and cl, 1
shr eax, 1
test cl, cl
cmovne eax, edx
test eax, eax
je 0x4fd34c
test byte [esp + 0x1c], 1
lea edx, [esp + 0x1d]
je 0x4fd334
mov edx, dword [esp + 0x24]
mov esi, ebx
test cl, cl
je 0x4fd33d
mov esi, dword [ebx + 7]
add edx, dword [esp + 0x38]
push eax
push esi
push edx
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
add esp, 0xc
mov ecx, dword [esp + 0x48]
mov eax, ecx
sub eax, dword [esp + 0x3c]
cmp dword [esp + 0x28], ecx
cmovbe eax, dword [esp + 0x40]
test byte [esp], 1
lea ecx, [esp + 1]
je 0x4fd36d
mov ecx, dword [esp + 8]
add edi, ecx
add eax, ecx
sub eax, edi
test eax, eax
jle 0x4fd230
push eax
push 0x7e
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
jmp 0x4fd230
mov edi, dword [esp + 0xc]
mov ecx, dword [edi + 0x18]
mov edx, dword [esp + 0x30]
cmp ecx, edx
cmovb edx, ecx
test byte [esp], 1
lea ebp, [esp + 1]
mov eax, ebp
je 0x4fd3ac
mov eax, dword [esp + 8]
mov byte [eax + edx], 0x5e
movzx eax, byte [esp]
test al, 1
je 0x4fd3c2
mov ecx, dword [esp + 8]
mov eax, dword [esp + 4]
jmp 0x4fd3c6
shr eax, 1
mov ecx, ebp
inc eax
nop word [eax + eax]
cmp eax, 1
je 0x4fd3e3
lea edx, [eax - 1]
cmp byte [ecx + eax - 2], 0x20
mov eax, edx
je 0x4fd3d0
jmp 0x4fd3e5
xor edx, edx
mov ecx, esp
push 0xffffffffffffffff
push edx
call fcn.00504a5c
movzx eax, byte [edi + 0x2c]
test al, 1
je 0x4fd3ff
mov edx, dword [edi + 0x34]
mov eax, dword [edi + 0x30]
jmp 0x4fd405
shr eax, 1
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x8c]
mov ecx, esi
push eax
call fcn.004fdc50
add esp, 4
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x34]
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x14]
push 0
push 1
push 2
call fcn.004eec50
movzx eax, byte [esp]
test al, 1
je 0x4fd447
mov eax, dword [esp + 4]
test eax, eax
jne 0x4fd451
jmp 0x4fd534
shr eax, 1
test eax, eax
je 0x4fd534
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x10], eax
jmp 0x4fd47b
movzx eax, al
push eax
call fcn.0046b5f0
inc ebx
mov ecx, esi
inc ecx
mov eax, dword [esp + 0x10]
mov esi, ecx
cmp ecx, eax
je 0x4fd534
mov ecx, dword [esp + 0xc]
movzx eax, byte [ecx + 0x2c]
test al, 1
je 0x4fd4a0
mov ecx, dword [ecx + 0x30]
mov edx, esi
cmp esi, ecx
jb 0x4fd4aa
jmp 0x4fd4c1
mov ecx, eax
shr ecx, 1
mov edx, esi
cmp esi, ecx
jae 0x4fd4c1
mov ecx, dword [esp + 0x2c]
test al, 1
je 0x4fd4b9
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x34]
mov eax, esi
cmp byte [ecx + esi], 9
je 0x4fd502
test byte [esp], 1
mov eax, ebp
je 0x4fd4cd
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov edx, esi
movzx eax, byte [eax + esi]
mov edx, dword [ecx + 0x10]
cmp edx, dword [ecx + 0xc]
jae 0x4fd460
lea edi, [edx + 1]
mov dword [ecx + 0x10], edi
mov byte [edx], al
jmp 0x4fd469
lea edi, [edx + 1]
mov dword [ecx + 0x10], edi
mov byte [edx], al
inc ebx
test bl, 7
je 0x4fd46a
test byte [esp], 1
mov eax, ebp
je 0x4fd50e
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov edx, esi
movzx eax, byte [eax + esi]
mov edx, dword [ecx + 0x10]
cmp edx, dword [ecx + 0xc]
jb 0x4fd4f0
movzx eax, al
push eax
call fcn.0046b5f0
inc ebx
test bl, 7
jne 0x4fd502
jmp 0x4fd46a
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x10]
cmp eax, dword [ecx + 0xc]
jae 0x4fd54b
lea edx, [eax + 1]
mov dword [ecx + 0x10], edx
mov byte [eax], 0xa
jmp 0x4fd552
push 0xa
call fcn.0046b5f0
lea ecx, [esp + 0x14]
call fcn.004eecd0
movzx eax, byte [esp + 0x1c]
test al, 1
je 0x4fd578
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x8c]
test eax, eax
jne 0x4fd589
jmp 0x4fd6bc
shr eax, 1
mov ecx, dword [esp + 0x8c]
test eax, eax
je 0x4fd6bc
xor ebx, ebx
lea edi, [esp + 0x1d]
xor ebp, ebp
mov dword [esp + 0x10], eax
jmp 0x4fd5c6
mov byte [esp + 0x28], dl
lea edx, [eax + 1]
mov dword [ecx + 0x10], edx
movzx ecx, byte [esp + 0x28]
mov byte [eax], cl
inc ebx
mov edx, dword [esp + 0x10]
inc ebp
cmp ebp, edx
mov ecx, dword [esp + 0x8c]
jae 0x4fd6ab
mov edx, dword [esp + 0xc]
movzx eax, byte [edx + 0x2c]
test al, 1
je 0x4fd5e0
mov edx, dword [edx + 0x30]
cmp ebp, edx
jb 0x4fd5ec
jmp 0x4fd680
mov edx, eax
shr edx, 1
cmp ebp, edx
jae 0x4fd680
mov edx, dword [esp + 0x2c]
test al, 1
je 0x4fd5fb
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 0x34]
cmp byte [edx + ebp], 9
jne 0x4fd680
nop word cs:[eax + eax]
test byte [esp + 0x1c], 1
mov esi, edi
mov eax, edi
je 0x4fd61f
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + ebp]
mov ecx, dword [esp + 0x8c]
mov edi, dword [ecx + 0x10]
cmp edi, dword [ecx + 0xc]
jae 0x4fd640
lea edx, [edi + 1]
mov dword [ecx + 0x10], edx
mov byte [edi], al
jmp 0x4fd649
movzx eax, al
push eax
call fcn.0046b5f0
test byte [esp + 0x1c], 1
mov edi, esi
mov eax, esi
mov edx, dword [esp + 0x10]
je 0x4fd65c
mov eax, dword [esp + 0x24]
xor ecx, ecx
cmp byte [eax + ebp], 0x20
setne cl
add ebp, ecx
inc ebx
test bl, 7
je 0x4fd5b6
cmp ebp, edx
jne 0x4fd610
jmp 0x4fd5b6
test byte [esp + 0x1c], 1
mov eax, edi
je 0x4fd68d
mov eax, dword [esp + 0x24]
movzx edx, byte [eax + ebp]
mov eax, dword [ecx + 0x10]
cmp eax, dword [ecx + 0xc]
jb 0x4fd5a0
movzx eax, dl
push eax
call fcn.0046b5f0
jmp 0x4fd5b1
mov eax, dword [ecx + 0x10]
cmp eax, dword [ecx + 0xc]
jae 0x4fd6eb
lea edx, [eax + 1]
mov dword [ecx + 0x10], edx
mov byte [eax], 0xa
test byte [esp + 0x1c], 1
je 0x4fd6cf
push dword [esp + 0x24]
call sub.libc.dll_operator_delete_void_
add esp, 4
test byte [esp], 1
je 0x4fd6e1
push dword [esp + 8]
call sub.libc.dll_operator_delete_void_
add esp, 4
add esp, 0x74
pop esi
pop edi
pop ebx
pop ebp
ret 0x10
push 0xa
call fcn.0046b5f0
test byte [esp + 0x1c], 1
jne 0x4fd6c3
jmp 0x4fd6cf
mov ecx, esp
call fcn.00401af0
int3