Function at 0x46cd00
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 + 0x10], eax
mov dword [eax + 8], 0
mov dword [eax], ecx
push edi
mov edi, edx
cmp esi, 3
jle 0x46cd40
mov eax, dword [edi + 0xc]
cmp dword [eax + 8], 4
jne 0x46cd3c
mov ecx, dword [eax]
mov dword [esp + 0x38], ecx
jmp 0x46cd4b
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov dword [esp + 0x38], ecx
cmp esi, 2
jle 0x46cd8b
mov ecx, dword [edi + 8]
lea edx, [esp + 0x78]
call fcn.00477030
mov ebx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x28], ebx
mov dword [eax + 4], 0
cmp esi, 4
jle 0x46cd9c
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x28], ebx
cmp dword [ecx + 8], 3
je 0x46cd9c
xor edx, edx
call fcn.00476f70
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], ebx
jmp 0x46cda4
mov dword [eax + 4], ecx
xor ecx, ecx
mov dword [esp + 0x28], 0x4e3371
mov dword [esp + 0x38], ecx
mov dword [esp + 0x1c], 0xffffffff
mov eax, dword [ebp + 0x14]
xor esi, esi
mov ebx, dword [esp + 0x14]
xor edi, edi
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x34], esi
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x46d16a
push dword [ebp + 0x24]
mov ecx, dword [ebp + 0xc]
push dword [ebp + 0x20]
push esi
push edx
push dword [ebp + 0x18]
mov edx, dword [ebp + 0x10]
push eax
call fcn.004bf920
mov ecx, eax
add esp, 0x18
mov dword [esp + 0x44], ecx
cmp ecx, 0xffffffff
je 0x46d166
test ecx, ecx
js 0x46d1f0
mov eax, dword [ebp + 0x20]
inc dword [esp + 0x18]
dec dword [esp + 0x1c]
mov esi, dword [eax]
sub esi, dword [esp + 0x20]
mov edx, dword [eax + 4]
add esi, dword [ebp + 0x14]
xor eax, eax
mov dword [ebp + 0x1c], edx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x24], eax
test eax, eax
je 0x46ce98
mov ecx, dword [esp + 0xc]
lea eax, [ecx + 3]
cmp eax, dword [esp + 0x34]
jle 0x46ce6f
push edx
lea eax, [ecx + 2]
push eax
mov eax, ecx
sub eax, edx
cdq
idiv dword [esp + 0x20]
push dword [ebp + 0x18]
mov edx, dword [esp + 0x24]
mov ecx, eax
push dword [esp + 0x28]
call fcn.004ac600
push eax
push dword [ebx + 0xc]
mov dword [esp + 0x4c], eax
call fcn.004c4e40
add esp, 0x18
test eax, eax
je 0x46d305
mov dword [ebx + 0xc], eax
test esi, esi
je 0x46ce8a
mov eax, dword [ebx + 0xc]
add eax, dword [ebx + 4]
push esi
push dword [esp + 0x24]
push eax
call fcn.004c2440
add esp, 0xc
add dword [ebx + 4], esi
mov edi, dword [ebx + 0xc]
mov eax, dword [ebx + 4]
add edi, eax
mov edx, dword [esp + 0xc]
jmp 0x46cea1
mov edx, dword [ebx + 4]
add edx, esi
mov dword [esp + 0xc], edx
mov esi, dword [esp + 0x28]
cmp dword [esp + 0x24], 0
mov ecx, esi
mov al, byte [esi]
je 0x46cecb
test al, al
je 0x46cec2
cmp al, 0x24
je 0x46cec2
inc esi
mov byte [edi], al
inc edi
mov al, byte [esi]
test al, al
jne 0x46ceb4
mov eax, esi
sub eax, ecx
add dword [ebx + 4], eax
jmp 0x46cee6
test al, al
je 0x46cedc
nop
cmp al, 0x24
je 0x46cedc
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x46ced0
mov eax, esi
sub eax, ecx
add edx, eax
mov dword [esp + 0xc], edx
cmp byte [esi], 0
je 0x46d12c
mov bl, byte [esi + 1]
lea eax, [esi + 1]
xor ecx, ecx
mov byte [esp + 0x13], 0
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], eax
test bl, bl
je 0x46cf5f
movzx eax, bl
test eax, 0xffffff80
je 0x46cf16
xor eax, eax
jmp 0x46cf21
push 2
push eax
call fcn.004c7451
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 0x46cf45
sub eax, 8
je 0x46cf45
sub eax, 1
jne 0x46cf57
mov ecx, 1
mov byte [esp + 0x13], bl
mov bl, byte [esi + 2]
mov dword [esp + 0x30], ecx
jmp 0x46cf5b
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x2c], connect
test bl, bl
je 0x46d0f6
cmp bl, 0x24
je 0x46d0f4
cmp bl, 0x7b
je 0x46cf96
lea eax, [ebx - 0x30]
cmp al, 9
ja 0x46d0f6
movsx eax, bl
inc esi
sub eax, 0x30
add esi, ecx
jmp 0x46d024
lea eax, [ecx + 2]
add eax, esi
push 0x7d
push eax
call fcn.004ca733
add esp, 8
mov dword [esp + 0x40], eax
test eax, eax
je 0x46d0f6
mov ecx, dword [esp + 0x30]
mov ebx, eax
add ecx, 2
add ecx, esi
sub ebx, ecx
je 0x46d0f6
cmp ebx, 0x21
jae 0x46d01c
push ebx
push ecx
lea eax, [esp + 0x5c]
push eax
call fcn.004cc440
add esp, 0xc
mov byte [esp + ebx + 0x54], 0
mov edx, 1
lea ecx, [esp + 0x54]
push 0
push 1
push 0
call fcn.004ab8c0
add esp, 0xc
test eax, eax
je 0x46d008
lea eax, [esp + 0x54]
push eax
call fcn.004c4df6
add esp, 4
jmp 0x46d020
push dword [ebp + 0x20]
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x58]
call fcn.004c04e0
add esp, 4
jmp 0x46d020
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x40]
cmp eax, 0x80000000
je 0x46d0f6
test eax, eax
js 0x46d11e
cmp eax, dword [esp + 0x44]
jge 0x46d11e
mov edx, dword [ebp + 0x20]
mov ebx, dword [edx + eax*8 + 4]
mov ecx, dword [edx + eax*8]
sub ebx, ecx
je 0x46d11e
cmp dword [esp + 0x24], 0
je 0x46d0e0
mov eax, dword [ebp + 0x14]
push ebx
add eax, ecx
push eax
push edi
call fcn.004c2440
mov al, byte [esp + 0x1f]
add esp, 0xc
test al, al
je 0x46d0cb
movsx eax, al
mov byte [ebx + edi], 0
sub eax, 0x4c
je 0x46d0c4
sub eax, 8
je 0x46d0a8
sub eax, 1
jne 0x46d0cb
push edi
call dword [sym.imp.USER32.dll_CharUpperA]
mov eax, dword [esp + 0x14]
add edi, ebx
mov edx, dword [esp + 0xc]
add dword [eax + 4], ebx
mov ebx, eax
inc esi
jmp 0x46cea5
mov ecx, edi
call fcn.00428b70
mov eax, dword [esp + 0x14]
add edi, ebx
mov edx, dword [esp + 0xc]
add dword [eax + 4], ebx
mov ebx, eax
inc esi
jmp 0x46cea5
push edi
call dword [sym.imp.USER32.dll_CharLowerA]
mov eax, dword [esp + 0x14]
add edi, ebx
mov edx, dword [esp + 0xc]
add dword [eax + 4], ebx
mov ebx, eax
inc esi
jmp 0x46cea5
mov edx, dword [esp + 0xc]
add edx, ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0xc], edx
inc esi
jmp 0x46cea5
mov esi, eax
cmp dword [esp + 0x24], 0
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
je 0x46d113
mov al, byte [esi]
mov byte [edi], al
inc edi
inc dword [ebx + 4]
inc esi
jmp 0x46cea5
inc edx
inc esi
mov dword [esp + 0xc], edx
jmp 0x46cea5
mov ebx, dword [esp + 0x14]
inc esi
mov edx, dword [esp + 0xc]
jmp 0x46cea5
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x3c]
inc eax
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x24], eax
cmp eax, 2
jl 0x46ce23
mov ecx, dword [ebp + 0x20]
xor esi, esi
mov eax, dword [ecx]
cmp eax, dword [ecx + 4]
mov eax, 0x410
cmove esi, eax
mov eax, dword [ebp + 0x14]
lea ecx, [eax + edx]
mov dword [esp + 0x20], ecx
jmp 0x46cdc2
mov ecx, dword [esp + 0x1c]
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
test esi, esi
je 0x46d23f
cmp eax, edx
jge 0x46d23f
test ecx, ecx
je 0x46d23f
mov eax, dword [esp + 0x20]
xor esi, esi
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
mov al, byte [eax]
mov byte [edx + ecx], al
mov eax, dword [esp + 0x20]
mov edx, dword [ebp + 0x1c]
inc dword [ebx + 4]
inc edx
mov ecx, dword [ebx + 4]
cmp byte [eax], 0xd
mov dword [ebp + 0x1c], edx
jne 0x46d1e1
cmp byte [eax + 1], 0xa
jne 0x46d1e1
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x46d1e1
cmp dword [eax], 0x50435245
jne 0x46d1e1
test byte [eax + 0xc], 1
je 0x46d1e1
test dword [eax + 8], 0x400000
je 0x46d1e1
mov eax, dword [ebx + 0xc]
mov byte [ecx + eax], 0xa
inc dword [ebx + 4]
inc edx
mov dword [ebp + 0x1c], edx
mov eax, dword [ebp + 0x14]
lea ecx, [eax + edx]
mov dword [esp + 0x20], ecx
jmp 0x46cdc2
mov eax, dword [0x4f898c]
test byte [eax + 0xe0], 1
je 0x46d22d
push 0xa
lea eax, [esp + 0x4c]
push eax
push ecx
call fcn.004c3fb8
mov ecx, dword [0x4fde14]
add esp, 0xc
push 0x4e3371
push str.RegExReplace
push eax
call fcn.0044d4a0
mov edi, dword [esp + 0x18]
jmp 0x46d2b2
push ecx
mov ecx, dword [0x4fb94c]
call fcn.00404ad0
mov edi, dword [esp + 0x18]
jmp 0x46d2b2
mov edi, dword [esp + 0x18]
test edi, edi
je 0x46d29c
sub edx, eax
mov dword [ebp + 0x18], edx
je 0x46d28d
mov esi, dword [ebx + 4]
add esi, edx
cmp esi, dword [esp + 0x34]
jl 0x46d276
lea eax, [esi + 1]
push eax
push dword [ebx + 0xc]
call fcn.004c4e40
add esp, 8
test eax, eax
je 0x46d309
mov edx, dword [ebp + 0x18]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 0xc]
add eax, dword [ebx + 4]
push edx
push dword [esp + 0x24]
push eax
call fcn.004c2440
add esp, 0xc
mov dword [ebx + 4], esi
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 0xc]
mov byte [ecx + eax], 0
mov eax, dword [ebx + 0xc]
mov dword [ebx], eax
mov ecx, dword [0x4fb94c]
push 1
push 0
push 0xffffffffffffffff
push 0x4e33f8
call fcn.004b01a0
mov ebx, dword [esp + 0x38]
test ebx, ebx
je 0x46d37d
cmp byte [ebx + 0x17], 0
jne 0x46d2c7
mov ebx, dword [ebx + 0xc]
mov cl, byte [ebx + 0x15]
test cl, 2
je 0x46d2e0
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, edi
and cl, 0x9b
cdq
or cl, 0x18
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov byte [ebx + 0x15], cl
jge 0x46d36d
mov ecx, ebx
call fcn.004014d0
and byte [ebx + 0x15], 0x8f
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x18]
mov eax, dword [0x4f898c]
test byte [eax + 0xe0], 1
jne 0x46d326
mov ecx, dword [0x4fb94c]
push 0xfffffffffffffffa
call fcn.00404ad0
jmp 0x46d34d
push 0xa
lea eax, [esp + 0x4c]
push eax
push 0xfffffffffffffffa
call fcn.004c3fb8
mov ecx, dword [0x4fde14]
add esp, 0xc
push 0x4e3371
push str.RegExReplace
push eax
call fcn.0044d4a0
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x46d2b2
push eax
call fcn.004c4247
add esp, 4
mov dword [ebx + 0xc], 0
jmp 0x46d2b2
cmp dword [0x4fb974], 0
je 0x46d37d
mov ecx, ebx
call fcn.004014d0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret