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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x16c
mov eax, ecx
mov ecx, dword [ebp + 0x14]
push ebx
push esi
mov esi, dword [ebp + 8]
mov dword [esp + 0x14], eax
mov dword [eax + 8], 0
mov dword [eax], ecx
push edi
mov edi, edx
cmp esi, 3
jle 0x46cc20
mov eax, dword [edi + 0xc]
cmp dword [eax + 8], 4
jne 0x46cc1c
mov ecx, dword [eax]
mov dword [esp + 0x3c], ecx
jmp 0x46cc2b
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov dword [esp + 0x3c], ecx
cmp esi, 2
jle 0x46cc6b
mov ecx, dword [edi + 8]
lea edx, [esp + 0x78]
call fcn.00476fb0
mov ebx, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x2c], ebx
mov dword [eax + 4], 0
cmp esi, 4
jle 0x46cc7c
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x2c], ebx
cmp dword [ecx + 8], 3
je 0x46cc7c
xor edx, edx
call fcn.00476ef0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], ebx
jmp 0x46cc84
mov dword [eax + 4], ecx
xor ecx, ecx
mov dword [esp + 0x2c], 0x4c3c29
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x1c], 0xffffffff
mov eax, dword [ebp + 0x14]
xor esi, esi
mov edi, dword [esp + 0x18]
mov ebx, dword [ebp + 0x20]
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x38], esi
mov dword [esp + 0x28], esi
nop
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x46d075
push dword [ebp + 0x24]
mov ecx, dword [ebp + 0xc]
push ebx
push esi
push edx
push dword [ebp + 0x18]
mov edx, dword [ebp + 0x10]
push eax
call fcn.004bfc60
mov ecx, eax
add esp, 0x18
mov dword [esp + 0x40], ecx
cmp ecx, 0xffffffff
je 0x46d071
test ecx, ecx
js 0x46d0fb
mov edx, dword [ebx + 4]
mov ebx, dword [ebx]
mov esi, dword [esp + 0x20]
sub ebx, esi
add ebx, dword [ebp + 0x14]
inc dword [esp + 0x28]
dec dword [esp + 0x1c]
xor eax, eax
mov dword [ebp + 0x1c], edx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x24], eax
nop
test eax, eax
je 0x46cd77
mov ecx, dword [esp + 0xc]
lea eax, [ecx + 3]
cmp eax, dword [esp + 0x38]
jle 0x46cd4d
push edx
lea eax, [ecx + 2]
push eax
mov eax, ecx
sub eax, edx
cdq
idiv dword [esp + 0x30]
push dword [ebp + 0x18]
mov edx, dword [esp + 0x34]
mov ecx, eax
push dword [esp + 0x28]
call fcn.004ac960
push eax
push dword [edi + 0xc]
mov dword [esp + 0x50], eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
add esp, 0x18
test eax, eax
je 0x46d20c
mov dword [edi + 0xc], eax
test ebx, ebx
je 0x46cd65
mov eax, dword [edi + 0xc]
add eax, dword [edi + 4]
push ebx
push esi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add dword [edi + 4], ebx
mov ebx, dword [edi + 0xc]
mov eax, dword [edi + 4]
add ebx, eax
mov edx, dword [esp + 0xc]
mov dword [esp + 0x14], ebx
jmp 0x46cd84
mov edx, dword [edi + 4]
add edx, ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0xc], edx
mov esi, dword [esp + 0x2c]
nop dword [eax + eax]
cmp dword [esp + 0x24], 0
mov ecx, esi
mov al, byte [esi]
je 0x46cdbb
test al, al
je 0x46cdb2
nop
cmp al, 0x24
je 0x46cdae
inc esi
mov byte [ebx], al
inc ebx
mov al, byte [esi]
test al, al
jne 0x46cda0
mov dword [esp + 0x14], ebx
mov eax, esi
sub eax, ecx
add dword [edi + 4], eax
jmp 0x46cdd6
test al, al
je 0x46cdcc
nop
cmp al, 0x24
je 0x46cdcc
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x46cdc0
mov eax, esi
sub eax, ecx
add edx, eax
mov dword [esp + 0xc], edx
cmp byte [esi], 0
je 0x46d033
mov bl, byte [esi + 1]
lea eax, [esi + 1]
xor ecx, ecx
mov byte [esp + 0x13], 0
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], eax
test bl, bl
je 0x46ce50
movzx eax, bl
test eax, 0xffffff80
je 0x46ce06
xor eax, eax
jmp 0x46ce12
push 2
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__isctype]
add esp, 8
mov cl, bl
and cl, 0xdf
test eax, eax
movzx edx, cl
movzx ecx, bl
cmove edx, ecx
mov bl, dl
movsx eax, bl
sub eax, 0x4c
je 0x46ce36
sub eax, 8
je 0x46ce36
sub eax, 1
jne 0x46ce48
mov ecx, 1
mov byte [esp + 0x13], bl
mov bl, byte [esi + 2]
mov dword [esp + 0x34], ecx
jmp 0x46ce4c
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
mov edi, connect
test bl, bl
je 0x46cff1
cmp bl, 0x24
je 0x46cfef
cmp bl, 0x7b
je 0x46ce84
lea eax, [ebx - 0x30]
cmp al, 9
ja 0x46cff1
movsx edi, bl
inc esi
sub edi, 0x30
add esi, ecx
jmp 0x46cf10
lea eax, [ecx + 2]
add eax, esi
push 0x7d
push eax
call dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbschr]
mov ecx, eax
add esp, 8
mov dword [esp + 0x30], ecx
test ecx, ecx
je 0x46cff1
mov ebx, ecx
mov ecx, dword [esp + 0x34]
add ecx, 2
add ecx, esi
sub ebx, ecx
je 0x46cff1
cmp ebx, 0x21
jae 0x46cf0c
push ebx
push ecx
lea eax, [esp + 0x5c]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
add esp, 0xc
mov byte [esp + ebx + 0x54], 0
mov edx, 1
lea ecx, [esp + 0x54]
push 0
push 1
push 0
call fcn.004abc00
add esp, 0xc
test eax, eax
je 0x46cef8
lea eax, [esp + 0x54]
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
jmp 0x46cf07
push dword [ebp + 0x20]
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x58]
call fcn.004c0820
mov edi, eax
add esp, 4
mov esi, dword [esp + 0x30]
cmp edi, 0x80000000
je 0x46cff1
test edi, edi
js 0x46d021
cmp edi, dword [esp + 0x40]
jge 0x46d021
mov ecx, dword [ebp + 0x20]
mov eax, dword [ecx + edi*8]
mov edi, dword [ecx + edi*8 + 4]
sub edi, eax
je 0x46d021
cmp dword [esp + 0x24], 0
mov ebx, dword [esp + 0x14]
je 0x46cfdb
add eax, dword [ebp + 0x14]
push edi
push eax
push ebx
call sub.VCRUNTIME140.dll_memcpy
mov al, byte [esp + 0x1f]
add esp, 0xc
test al, al
je 0x46cfc2
movsx eax, al
mov byte [edi + ebx], 0
sub eax, 0x4c
je 0x46cfbb
sub eax, 8
je 0x46cf9b
sub eax, 1
jne 0x46cfc2
push ebx
call dword [sym.imp.USER32.dll_CharUpperA]
mov eax, dword [esp + 0x18]
add ebx, edi
mov edx, dword [esp + 0xc]
mov dword [esp + 0x14], ebx
add dword [eax + 4], edi
mov edi, eax
inc esi
jmp 0x46cd90
mov ecx, ebx
call fcn.00428d00
mov eax, dword [esp + 0x18]
add ebx, edi
mov edx, dword [esp + 0xc]
mov dword [esp + 0x14], ebx
add dword [eax + 4], edi
mov edi, eax
inc esi
jmp 0x46cd90
push ebx
call dword [sym.imp.USER32.dll_CharLowerA]
mov eax, dword [esp + 0x18]
add ebx, edi
mov edx, dword [esp + 0xc]
mov dword [esp + 0x14], ebx
add dword [eax + 4], edi
mov edi, eax
inc esi
jmp 0x46cd90
mov edx, dword [esp + 0xc]
add edx, edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0xc], edx
inc esi
jmp 0x46cd90
mov esi, eax
cmp dword [esp + 0x24], 0
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
je 0x46d016
mov al, byte [esi]
mov byte [ebx], al
inc ebx
inc dword [edi + 4]
inc esi
mov dword [esp + 0x14], ebx
jmp 0x46cd90
inc edx
inc esi
mov dword [esp + 0xc], edx
jmp 0x46cd90
mov ebx, dword [esp + 0x14]
inc esi
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
jmp 0x46cd90
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x44]
inc eax
mov edx, dword [ebp + 0x1c]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x24], eax
cmp eax, 2
jl 0x46cd00
mov ebx, dword [ebp + 0x20]
xor esi, esi
mov eax, dword [ebx]
cmp eax, dword [ebx + 4]
mov eax, 0x410
cmove esi, eax
mov eax, dword [ebp + 0x14]
lea ecx, [eax + edx]
mov dword [esp + 0x20], ecx
jmp 0x46cca0
mov ecx, dword [esp + 0x1c]
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
test esi, esi
je 0x46d143
cmp eax, edx
jge 0x46d143
test ecx, ecx
je 0x46d143
mov eax, dword [esp + 0x20]
xor esi, esi
mov edx, dword [edi + 0xc]
mov ecx, dword [edi + 4]
mov al, byte [eax]
mov byte [edx + ecx], al
mov eax, dword [esp + 0x20]
mov edx, dword [ebp + 0x1c]
inc dword [edi + 4]
inc edx
mov ecx, dword [edi + 4]
cmp byte [eax], 0xd
mov dword [ebp + 0x1c], edx
jne 0x46d0ec
cmp byte [eax + 1], 0xa
jne 0x46d0ec
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x46d0ec
cmp dword [eax], 0x50435245
jne 0x46d0ec
test byte [eax + 0xc], 1
je 0x46d0ec
test dword [eax + 8], 0x400000
je 0x46d0ec
mov eax, dword [edi + 0xc]
mov byte [ecx + eax], 0xa
inc dword [edi + 4]
inc edx
mov dword [ebp + 0x1c], edx
mov eax, dword [ebp + 0x14]
lea ecx, [eax + edx]
mov dword [esp + 0x20], ecx
jmp 0x46cca0
mov eax, dword [0x4d70f4]
test byte [eax + 0xe0], 1
je 0x46d135
push 0xa
lea eax, [esp + 0x4c]
push eax
push ecx
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__itoa]
mov ecx, dword [0x4dbe24]
add esp, 0xc
push 0x4c3c29
push str.RegExReplace
push eax
call fcn.0044d1f0
jmp 0x46d1b7
push ecx
mov ecx, dword [0x4d995c]
call fcn.00404a70
jmp 0x46d1b7
cmp dword [esp + 0x28], 0
je 0x46d1a1
sub edx, eax
mov dword [ebp + 0x18], edx
je 0x46d192
mov esi, dword [edi + 4]
add esi, edx
cmp esi, dword [esp + 0x38]
jl 0x46d17a
lea eax, [esi + 1]
push eax
push dword [edi + 0xc]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
add esp, 8
test eax, eax
je 0x46d20c
mov edx, dword [ebp + 0x18]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x20]
push edx
push eax
mov eax, dword [edi + 0xc]
add eax, dword [edi + 4]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [edi + 4], esi
mov eax, dword [edi + 4]
mov ecx, dword [edi + 0xc]
mov byte [ecx + eax], 0
mov eax, dword [edi + 0xc]
mov dword [edi], eax
mov ecx, dword [0x4d995c]
push 1
push 0
push 0xffffffffffffffff
push 0x4c3cb0
call fcn.004b04f0
mov ebx, dword [esp + 0x3c]
test ebx, ebx
je 0x46d282
cmp byte [ebx + 0x17], 0
jne 0x46d1cc
mov ebx, dword [ebx + 0xc]
mov cl, byte [ebx + 0x15]
test cl, 2
je 0x46d1e5
and cl, 0x3d
mov byte [ebx + 0x15], cl
mov ecx, dword [ebx]
push ecx
mov edx, dword [ecx]
call dword [edx + 8]
mov cl, byte [ebx + 0x15]
mov eax, dword [esp + 0x28]
and cl, 0x9b
cdq
or cl, 0x18
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov byte [ebx + 0x15], cl
jge 0x46d272
mov ecx, ebx
call fcn.004014a0
and byte [ebx + 0x15], 0x8f
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x4d70f4]
test byte [eax + 0xe0], 1
jne 0x46d229
mov ecx, dword [0x4d995c]
push 0xfffffffffffffffa
call fcn.00404a70
jmp 0x46d251
push 0xa
lea eax, [esp + 0x4c]
push eax
push 0xfffffffffffffffa
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__itoa]
mov ecx, dword [0x4dbe24]
add esp, 0xc
push 0x4c3c29
push str.RegExReplace
push eax
call fcn.0044d1f0
mov eax, dword [edi + 0xc]
test eax, eax
je 0x46d1b7
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov dword [edi + 0xc], 0
jmp 0x46d1b7
cmp dword [0x4d9984], 0
je 0x46d282
mov ecx, ebx
call fcn.004014a0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret