Function at 0x427ec8
Capabilities:
Get thread local storage value
Print debug messages
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, eax
push edi
or edx, 0xffffffff
mov edi, ecx
mov dword [ebp - 8], 1
mov dword [ebp - 0x10], esi
xor eax, eax
cmp word [edi + eax*2], 0
jne 0x427ee7
xor ecx, ecx
inc ecx
jmp 0x427ed5
cmp word [edi + eax*2], 0
jne 0x427edb
inc ecx
inc eax
cmp eax, 8
jl 0x427ecd
cmp ecx, dword [ebp - 8]
jle 0x427ee7
mov edx, eax
sub edx, ecx
mov dword [ebp - 8], ecx
inc eax
cmp eax, 8
jl 0x427ec1
and dword [ebp - 4], 0
test edx, edx
mov dword [ebp - 0xc], edx
jne 0x428164
cmp dword [ebp - 8], 6
je 0x427f18
cmp dword [ebp - 8], 5
jne 0x428164
cmp word [edi + 0xa], 0xffff
jne 0x428164
mov eax, ebx
dec ebx
test eax, eax
jne 0x427f26
xor eax, eax
jmp 0x428250
mov byte [esi], 0x3a
inc esi
mov eax, ebx
dec ebx
test eax, eax
je 0x427f1f
mov byte [esi], 0x3a
inc esi
cmp dword [ebp - 8], 5
jne 0x427f72
mov eax, ebx
dec ebx
test eax, eax
je 0x427f1f
mov byte [esi], 0x66
inc esi
mov eax, ebx
dec ebx
test eax, eax
je 0x427f1f
mov byte [esi], 0x66
inc esi
mov eax, ebx
dec ebx
test eax, eax
je 0x427f1f
mov byte [esi], 0x66
inc esi
mov eax, ebx
dec ebx
test eax, eax
je 0x427f1f
mov byte [esi], 0x66
inc esi
mov eax, ebx
dec ebx
test eax, eax
je 0x427f1f
mov byte [esi], 0x3a
inc esi
mov al, byte [edi + 0xc]
cmp al, 0x63
mov cl, 0x30
jbe 0x427f96
mov edx, ebx
dec ebx
test edx, edx
mov dword [ebp + 8], ebx
je 0x427f1f
movzx eax, al
cdq
push 0x64
pop ebx
idiv ebx
mov ebx, dword [ebp + 8]
add al, cl
mov byte [esi], al
inc esi
mov al, byte [edi + 0xc]
cmp al, 9
jbe 0x427fc4
mov edx, ebx
dec ebx
test edx, edx
mov dword [ebp + 8], ebx
je 0x427f1f
movzx eax, al
cdq
push 0x64
pop ebx
idiv ebx
push 0xa
pop ebx
mov eax, edx
cdq
idiv ebx
mov ebx, dword [ebp + 8]
add al, cl
mov byte [esi], al
inc esi
mov eax, ebx
dec ebx
test eax, eax
mov dword [ebp + 8], ebx
je 0x427f1f
movzx eax, byte [edi + 0xc]
cdq
push 0xa
pop ebx
idiv ebx
mov eax, dword [ebp + 8]
add dl, cl
mov byte [esi], dl
inc esi
dec dword [ebp + 8]
test eax, eax
je 0x427f1f
mov byte [esi], 0x2e
mov al, byte [edi + 0xd]
inc esi
cmp al, 0x63
jbe 0x428016
mov edx, dword [ebp + 8]
dec dword [ebp + 8]
test edx, edx
je 0x427f1f
movzx eax, al
cdq
push 0x64
pop ebx
idiv ebx
add al, cl
mov byte [esi], al
inc esi
mov al, byte [edi + 0xd]
cmp al, 9
jbe 0x428041
mov edx, dword [ebp + 8]
dec dword [ebp + 8]
test edx, edx
je 0x427f1f
movzx eax, al
cdq
push 0x64
pop ebx
idiv ebx
push 0xa
pop ebx
mov eax, edx
cdq
idiv ebx
add al, cl
mov byte [esi], al
inc esi
mov eax, dword [ebp + 8]
dec dword [ebp + 8]
test eax, eax
je 0x427f1f
movzx eax, byte [edi + 0xd]
cdq
push 0xa
pop ebx
idiv ebx
mov eax, dword [ebp + 8]
add dl, cl
mov byte [esi], dl
inc esi
dec dword [ebp + 8]
test eax, eax
je 0x427f1f
mov byte [esi], 0x2e
mov al, byte [edi + 0xe]
inc esi
cmp al, 0x63
jbe 0x428093
mov edx, dword [ebp + 8]
dec dword [ebp + 8]
test edx, edx
je 0x427f1f
movzx eax, al
cdq
push 0x64
pop ebx
idiv ebx
add al, cl
mov byte [esi], al
inc esi
mov al, byte [edi + 0xe]
cmp al, 9
jbe 0x4280be
mov edx, dword [ebp + 8]
dec dword [ebp + 8]
test edx, edx
je 0x427f1f
movzx eax, al
cdq
push 0x64
pop ebx
idiv ebx
push 0xa
pop ebx
mov eax, edx
cdq
idiv ebx
add al, cl
mov byte [esi], al
inc esi
mov eax, dword [ebp + 8]
dec dword [ebp + 8]
test eax, eax
je 0x427f1f
movzx eax, byte [edi + 0xe]
cdq
push 0xa
pop ebx
idiv ebx
mov eax, dword [ebp + 8]
add dl, cl
mov byte [esi], dl
inc esi
dec dword [ebp + 8]
test eax, eax
je 0x427f1f
mov byte [esi], 0x2e
mov al, byte [edi + 0xf]
inc esi
cmp al, 0x63
jbe 0x428110
mov edx, dword [ebp + 8]
dec dword [ebp + 8]
test edx, edx
je 0x427f1f
movzx eax, al
cdq
push 0x64
pop ebx
idiv ebx
add al, cl
mov byte [esi], al
inc esi
mov al, byte [edi + 0xf]
cmp al, 9
jbe 0x42813b
mov edx, dword [ebp + 8]
dec dword [ebp + 8]
test edx, edx
je 0x427f1f
movzx eax, al
cdq
push 0x64
pop ebx
idiv ebx
push 0xa
pop ebx
mov eax, edx
cdq
idiv ebx
add al, cl
mov byte [esi], al
inc esi
mov ebx, dword [ebp + 8]
test ebx, ebx
je 0x427f1f
movzx eax, byte [edi + 0xf]
push 0xa
cdq
pop edi
idiv edi
add dl, cl
dec ebx
mov byte [esi], dl
je 0x427f1f
mov byte [esi + 1], 0
jmp 0x42824d
cmp dword [ebp - 4], edx
jne 0x428192
mov eax, ebx
dec ebx
test eax, eax
je 0x427f1f
mov byte [esi], 0x3a
inc esi
mov eax, ebx
dec ebx
test eax, eax
je 0x427f1f
mov eax, dword [ebp - 8]
mov byte [esi], 0x3a
inc esi
add dword [ebp - 4], eax
jmp 0x428238
mov eax, dword [ebp - 4]
movzx eax, word [edi + eax*2]
push eax
call sub.WS2_32.dll_ntohs
movzx ecx, ax
cmp ecx, 0xfff
mov eax, dword [0x4a7fd4]
jbe 0x4281c5
mov edx, ebx
dec ebx
test edx, edx
je 0x427f1f
mov edx, ecx
shr edx, 0xc
mov dl, byte [edx + eax]
mov byte [esi], dl
inc esi
cmp ecx, 0xff
jbe 0x4281e6
mov edx, ebx
dec ebx
test edx, edx
je 0x427f1f
mov edx, ecx
shr edx, 8
and edx, 0xf
mov dl, byte [edx + eax]
mov byte [esi], dl
inc esi
cmp ecx, 0xf
jbe 0x428204
mov edx, ebx
dec ebx
test edx, edx
je 0x427f1f
mov edx, ecx
shr edx, 4
and edx, 0xf
mov dl, byte [edx + eax]
mov byte [esi], dl
inc esi
mov edx, ebx
dec ebx
test edx, edx
je 0x427f1f
and ecx, 0xf
mov al, byte [ecx + eax]
mov byte [esi], al
inc esi
inc dword [ebp - 4]
cmp dword [ebp - 4], 8
jge 0x428242
mov edx, dword [ebp - 0xc]
cmp dword [ebp - 4], edx
je 0x428238
mov eax, ebx
dec ebx
test eax, eax
je 0x427f1f
mov byte [esi], 0x3a
inc esi
cmp dword [ebp - 4], 8
jl 0x428164
test ebx, ebx
je 0x427f1f
mov byte [esi], 0
mov eax, dword [ebp - 0x10]
pop edi
pop esi
pop ebx
leave
ret