Function at 0x6605c0
Capabilities:
Get thread local storage value
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x208
lea ecx, [esp + 0x30]
push ebx
push ebp
mov ebp, dword [esp + 0x228]
push esi
push edi
mov edi, dword [esp + 0x22c]
push ebp
push ecx
mov ecx, edi
mov eax, dword [edi]
call dword [eax + 0xc]
test eax, eax
jne 0x66158d
mov esi, dword [esp + 0x234]
mov ecx, dword [esp + 0x40]
xor edx, edx
mov eax, dword [ecx + 8]
cmp eax, 1
cmove edx, ecx
mov dword [esp + 0x1c], edx
test edx, edx
je 0x66152d
push 0
push str.name
mov ecx, edx
call fcn.00661f60
mov ecx, dword [esp + 0x21c]
push eax
call fcn.0045ded0
mov ebx, eax
mov dword [esp + 0x20], ebx
test ebx, ebx
jne 0x66066c
mov ebx, dword [esp + 0x1c]
lea ecx, [esp + 0x10]
push ebp
mov dword [esp + 0x14], eax
mov eax, dword [edi]
push ecx
push ebx
mov ecx, edi
call dword [eax + 0x14]
mov ecx, ebx
call fcn.0045c160
mov eax, dword [esp + 0x10]
test eax, eax
je 0x661578
push eax
lea ecx, [esp + 0x14]
call fcn.004d3bd0
jmp 0x661578
mov cl, byte [ebx + 0xc]
movzx eax, cl
dec eax
cmp eax, 0x20
ja case.0x660683.19
movzx eax, byte [eax + 0x6615f8]
jmp dword [eax*4 + 0x6615d0]
lea eax, [esp + 0x70]
mov dword [esp + 0x6c], 0x80000080
mov dword [esp + 0x64], eax
lea eax, [esp + 0x64]
push eax
push 1
push dword [esp + 0x24]
mov dword [esp + 0x74], 1
push ebp
push edi
mov byte [esp + 0x84], 0
call fcn.006600e0
mov eax, dword [esp + 0x7c]
lea ecx, [esp + 0x108]
add esp, 0x14
dec eax
push eax
push dword [esp + 0x68]
call fcn.0045fc50
mov eax, dword [esp + 0x224]
movzx esi, word [ebx + 0x12]
push ebx
mov eax, dword [eax]
add esi, dword [eax]
add esi, dword [esp + 0x224]
call fcn.00660180
add esp, 4
mov dword [esp + 0x20], eax
mov ecx, ebx
call fcn.00468990
mov ecx, dword [esp + 0x20]
cdq
idiv ecx
mov dword [esp + 0x24], eax
test ecx, ecx
jle 0x660744
mov edi, ecx
mov ebp, eax
lea eax, [esp + 0xf4]
push eax
movzx eax, byte [ebx + 0xc]
push esi
push eax
call fcn.006618a0
push ebp
push esi
call fcn.0065ff80
add esp, 0x14
mov esi, eax
sub edi, 1
jne 0x660712
mov edi, dword [esp + 0x22c]
mov ebp, dword [esp + 0x230]
lea ecx, [esp + 0xf4]
call fcn.0045fcf0
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x68], 0
test eax, eax
js case.0x660683.19
and eax, 0x3fffffff
mov ecx, 0x7d8950
push eax
mov eax, dword [0x7d8950]
push dword [esp + 0x68]
call dword [eax + 0x10]
jmp case.0x660683.19
cmp cl, 0x14
jne 0x6607ee
cmp byte [ebx + 0xd], 2
jne 0x6607ee
lea eax, [esp + 0x70]
mov dword [esp + 0x6c], 0x80000080
mov dword [esp + 0x64], eax
lea eax, [esp + 0x64]
push eax
push 0
push dword [esp + 0x24]
mov dword [esp + 0x74], 1
push ebp
push edi
mov byte [esp + 0x84], 0
call fcn.006600e0
add esp, 0x14
test eax, eax
je 0x661504
push esi
push dword [esp + 0x228]
lea eax, [esp + 0x6c]
push eax
movzx eax, word [ebx + 0x12]
add eax, dword [esp + 0x22c]
push eax
call fcn.00660050
add esp, 0x10
jmp 0x661504
lea eax, [esp + 0x70]
mov dword [esp + 0x6c], 0x80000080
mov dword [esp + 0x64], eax
lea eax, [esp + 0x64]
push eax
push 1
push dword [esp + 0x24]
mov dword [esp + 0x74], 1
push ebp
push edi
mov byte [esp + 0x84], 0
call fcn.006600e0
xor esi, esi
push ebx
mov dword [esp + 0x2c], esi
call fcn.00660180
add esp, 0x18
mov dword [esp + 0x18], eax
mov ecx, ebx
call fcn.00468990
cdq
xor ecx, ecx
idiv dword [esp + 0x18]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x24], eax
movzx eax, word [ebx + 0x12]
xor ebx, ebx
add eax, dword [esp + 0x220]
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], ecx
test edx, edx
jle 0x660a35
mov dword [esp + 0x20], eax
mov edi, ecx
nop dword [eax]
mov eax, dword [esp + 0x68]
dec eax
cmp ebx, eax
jge 0x660a23
mov eax, dword [esp + 0x64]
mov al, byte [eax + ebx]
movsx eax, al
push eax
lea eax, [esp + 0x4f]
push eax
call fcn.006601a0
add esp, 8
cmp byte [eax], 0
je 0x660a1a
cmp edi, ebx
je 0x660a13
mov ebp, ebx
mov dword [esp + 0x2c], 0
sub ebp, edi
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], connect
lea esi, [ebp + 1]
mov dword [esp + 0x3c], esi
test esi, esi
je 0x660912
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esi + 0x7f]
and edx, 0xffffff80
mov ecx, dword [eax + 0xc]
lea edi, [ecx + edx]
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x10]
cmp edx, dword [eax + 8]
jg 0x660906
lea esi, [ecx + edx]
cmp esi, dword [eax + 0x10]
lea esi, [ebp + 1]
ja 0x660906
mov edx, dword [esp + 0x4c]
mov dword [eax + 0xc], edx
jmp 0x660914
push edx
mov ecx, eax
call fcn.0046a3c0
mov ecx, eax
jmp 0x660914
xor ecx, ecx
mov eax, esi
mov dword [esp + 0x2c], ecx
or eax, 0x80000000
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x64]
push ebp
add eax, edi
push eax
push ecx
call fcn.0045d810
mov ecx, dword [esp + 0x40]
add esp, 0xc
and ecx, 0x3fffffff
cmp ecx, esi
jge 0x660964
add ecx, ecx
mov eax, esi
cmp esi, ecx
push 1
cmovl eax, ecx
push eax
lea eax, [esp + 0x34]
push eax
push 0x7d8954
call fcn.00467b80
add esp, 0x10
mov eax, dword [esp + 0x2c]
mov ebp, dword [esp + 0x20]
sub eax, edi
mov ecx, dword [esp + 0x234]
mov dword [esp + 0x30], esi
mov byte [eax + ebx], 0
push dword [esp + 0x2c]
push ebp
call fcn.0048c370
add ebp, dword [esp + 0x24]
xor ecx, ecx
inc dword [esp + 0x14]
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x3c]
push dword [0x884adc]
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x3c]
cmp ebp, dword [esp + 0x30]
cmove eax, ecx
add esi, 0x7f
mov dword [esp + 0x34], eax
and esi, 0xffffff80
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esi + 0xf]
and edx, 0xfffffff0
cmp esi, dword [eax + 8]
jg 0x6609db
lea ecx, [edx + ebp]
cmp ecx, dword [eax + 0xc]
jne 0x6609db
cmp dword [eax + 0x14], ebp
je 0x6609db
mov dword [eax + 0xc], ebp
jmp 0x6609e4
push edx
push ebp
mov ecx, eax
call fcn.0046a590
mov eax, dword [esp + 0x34]
mov dword [esp + 0x30], 0
test eax, eax
js 0x660a0b
and eax, 0x3fffffff
mov ecx, 0x7d8954
push eax
mov eax, dword [0x7d8954]
push dword [esp + 0x30]
call dword [eax + 0x10]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
lea edi, [ebx + 1]
mov dword [esp + 0x10], edi
inc ebx
cmp esi, edx
jl 0x660870
mov edi, dword [esp + 0x22c]
mov ebp, dword [esp + 0x230]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x68]
dec eax
cmp ecx, eax
je 0x660a61
cmp esi, edx
jge 0x660a61
mov eax, dword [esp + 0x64]
add eax, ecx
mov ecx, dword [esp + 0x234]
push eax
mov eax, dword [esp + 0x28]
imul eax, esi
add eax, dword [esp + 0x2c]
push eax
call fcn.0048c370
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x68], 0
test eax, eax
js case.0x660683.19
and eax, 0x3fffffff
mov ecx, 0x7d8950
push eax
mov eax, dword [0x7d8950]
push dword [esp + 0x68]
call dword [eax + 0x10]
jmp case.0x660683.19
mov ecx, dword [esp + 0x224]
or eax, 0xffffffff
push 1
push 0
mov dword [esp + 0x1c], eax
call fcn.00661d20
mov cl, byte [ebx + 0xd]
mov edx, eax
mov dword [esp + 0x18], edx
cmp cl, 0x19
jne 0x660bb4
mov esi, dword [esp + 0x1c]
mov ecx, esi
push 0
push str.numelements
call fcn.00661f60
push 0
push eax
call fcn.0045d4c0
add esp, 8
mov dword [esp + 0x14], eax
mov ecx, ebx
call fcn.00468e20
mov dword [esp + 0x28], eax
test eax, eax
je 0x660b9b
mov ecx, eax
call fcn.0045e050
mov ecx, dword [esp + 0x224]
mov esi, eax
imul esi, dword [esp + 0x14]
push 0x10
mov dword [esp + 0x50], eax
push esi
call fcn.00661d20
mov eax, dword [esp + 0x224]
mov edx, dword [eax]
mov eax, dword [edx + 4]
add eax, 0xf
add eax, esi
and eax, 0xfffffff0
mov dword [edx + 4], eax
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x660d84
mov esi, dword [esp + 0x18]
mov ebx, eax
mov eax, dword [edi]
lea ecx, [esp + 0x10]
push ebp
push ecx
mov ecx, edi
mov dword [esp + 0x18], 0
call dword [eax + 0xc]
push dword [esp + 0x238]
mov eax, dword [esp + 0x14]
xor ecx, ecx
push dword [esp + 0x238]
push ebp
cmp dword [eax + 8], 1
push edi
cmove ecx, eax
push ecx
push dword [esp + 0x238]
push esi
push dword [esp + 0x44]
call fcn.006605c0
mov ecx, dword [esp + 0x30]
add esp, 0x20
test ecx, ecx
je 0x660b8d
mov eax, dword [ecx]
push 1
call dword [eax]
add esi, dword [esp + 0x4c]
sub ebx, 1
jne 0x660b38
jmp 0x660d80
mov eax, dword [esp + 0x21c]
push ebp
push esi
push edi
push ebx
push eax
call fcn.00661da0
add esp, 0x14
jmp 0x660d84
cmp cl, 0x18
je 0x660d88
cmp cl, 0x1f
je 0x660d88
mov ecx, ebx
call fcn.00468980
cmp eax, 0x1d
je 0x660c7a
mov ecx, ebx
call fcn.00468980
cmp eax, 0x21
je 0x660c7a
mov al, byte [ebx + 0xd]
test al, al
jne 0x660c11
mov eax, dword [esp + 0x21c]
push ebp
push dword [esp + 0x20]
push edi
push ebx
push eax
call fcn.00661da0
add esp, 0x14
mov dword [esp + 0x14], 0
jmp 0x660d84
cmp al, 0x19
mov dword [esp + 0x6c], 0x80000080
lea eax, [esp + 0x70]
mov dword [esp + 0x68], 1
mov dword [esp + 0x64], eax
setne byte [esp + 0xf0]
lea eax, [esp + 0x64]
mov byte [esp + 0x70], 0
push eax
push dword [esp + 0xf4]
push dword [esp + 0x24]
push ebp
push edi
call fcn.006600e0
push esi
push dword [esp + 0x23c]
lea eax, [esp + 0x80]
push eax
push ebx
call fcn.006601d0
add esp, 0x24
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x64]
call fcn.00469220
jmp 0x660d84
mov ecx, dword [esp + 0x1c]
push 0
push str.numelements
call fcn.00661f60
push 0
push eax
call fcn.0045d4c0
mov ecx, dword [esp + 0x22c]
add esp, 8
mov dword [esp + 0x14], eax
lea esi, [eax*4]
push 0x10
push esi
call fcn.00661d20
mov eax, dword [esp + 0x224]
mov ecx, dword [eax]
mov eax, dword [ecx + 4]
add eax, 0xf
add eax, esi
and eax, 0xfffffff0
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x660d84
mov esi, dword [esp + 0x18]
mov ebx, eax
mov eax, dword [edi]
lea ecx, [esp + 0x10]
push ebp
push ecx
mov ecx, edi
mov dword [esp + 0x18], 0
call dword [eax + 0xc]
lea eax, [esp + 0x70]
mov dword [esp + 0x6c], 0x80000080
mov dword [esp + 0x64], eax
lea eax, [esp + 0x64]
push eax
push 0
push dword [esp + 0x24]
mov dword [esp + 0x74], 1
push ebp
push edi
mov byte [esp + 0x84], 0
call fcn.006600e0
add esp, 0x14
test eax, eax
je 0x660d42
push dword [esp + 0x234]
lea eax, [esp + 0x68]
push dword [esp + 0x228]
push eax
push esi
call fcn.00660050
add esp, 0x10
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x660d50
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [edi]
lea ecx, [esp + 0x10]
push ebp
push ecx
mov ecx, edi
call dword [eax + 0xc]
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x660d6b
mov eax, dword [ecx]
push 1
call dword [eax]
lea ecx, [esp + 0x64]
call fcn.00469220
add esi, 4
sub ebx, 1
jne 0x660cd8
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x224]
movzx ecx, word [ebx + 0x12]
mov eax, dword [eax]
add ecx, dword [eax]
add ecx, dword [esp + 0x220]
push ecx
call fcn.0065fea0
mov esi, eax
add esp, 4
mov eax, dword [esp + 0x14]
mov dword [esi], 0
mov dword [esi + 4], eax
test eax, eax
jle 0x660dd7
movzx ecx, word [ebx + 0x12]
add ecx, dword [esp + 0x220]
push edx
push ecx
mov ecx, dword [esp + 0x23c]
call fcn.0049d640
mov eax, dword [esp + 0x14]
cmp byte [ebx + 0xc], 0x1a
je case.0x660683.19
or eax, 0x80000000
mov dword [esi + 8], eax
jmp case.0x660683.19
lea eax, [esp + 0x70]
mov dword [esp + 0x6c], 0x80000080
mov dword [esp + 0x64], eax
lea eax, [esp + 0x64]
push eax
push 0
push dword [esp + 0x24]
mov dword [esp + 0x74], 1
push ebp
push edi
mov byte [esp + 0x84], 0
call fcn.006600e0
mov eax, dword [esp + 0x7c]
add esp, 0x14
add eax, 0xffffffff
je 0x661504
mov ecx, ebx
call fcn.00468e50
lea ecx, [esp + 0x5c]
mov dword [esp + 0x5c], 0
push ecx
push dword [esp + 0x68]
mov ecx, eax
call fcn.00469320
mov eax, dword [esp + 0x224]
movzx ecx, word [ebx + 0x12]
push dword [esp + 0x5c]
mov eax, dword [eax]
add ecx, dword [eax]
add ecx, dword [esp + 0x224]
push ecx
mov ecx, ebx
call fcn.00468ea0
jmp 0x661504
push ebx
mov dword [esp + 0x18], 0
call fcn.00660180
add esp, 4
test eax, eax
jle case.0x660683.19
nop
mov eax, dword [edi]
lea ecx, [esp + 0x10]
push ebp
push ecx
mov ecx, edi
mov dword [esp + 0x18], 0
call dword [eax + 0xc]
mov ecx, dword [esp + 0x10]
xor ebp, ebp
cmp dword [ecx + 8], 1
cmove ebp, ecx
test ebp, ebp
je 0x660f66
mov ecx, ebx
call fcn.00468e20
test eax, eax
je 0x660f26
movzx esi, word [ebx + 0x12]
mov ecx, ebx
call fcn.00468e10
mov ecx, eax
call fcn.0045e050
imul eax, dword [esp + 0x14]
push dword [esp + 0x238]
mov ecx, dword [esp + 0x234]
add eax, esi
mov esi, dword [esp + 0x238]
add eax, dword [esp + 0x224]
push esi
push ecx
push edi
push ebp
push dword [esp + 0x238]
mov ecx, ebx
push eax
call fcn.00468e10
push eax
call fcn.006605c0
mov ecx, dword [esp + 0x30]
add esp, 0x20
test ecx, ecx
je 0x660f40
mov eax, dword [ecx]
push 1
call dword [eax]
jmp 0x660f40
mov ecx, dword [esp + 0x230]
push ecx
push ebp
push edi
push ebx
push dword [esp + 0x22c]
call fcn.00661da0
add esp, 0x14
mov ebp, dword [esp + 0x14]
inc ebp
push ebx
mov dword [esp + 0x18], ebp
call fcn.00660180
add esp, 4
cmp ebp, eax
mov ebp, dword [esp + 0x230]
jl 0x660e90
jmp case.0x660683.19
mov eax, dword [edi]
push ecx
mov ecx, edi
call dword [eax + 0x10]
mov ebp, dword [esp + 0x230]
jmp case.0x660683.19
mov ecx, dword [esp + 0x1c]
push 0
push str.numelements
call fcn.00661f60
push 0
push eax
call fcn.0045d4c0
mov edx, dword [edi]
add esp, 8
mov dword [esp + 0x18], eax
mov ecx, edi
lea eax, [esp + 0x44]
mov dword [esp + 0x44], 0
push ebp
push eax
call dword [edx + 0xc]
mov edx, dword [edi]
mov ecx, edi
push dword [esp + 0x44]
call dword [edx + 0x10]
mov eax, dword [esp + 0x44]
cmp dword [eax + 8], 2
je case.0x660683.19
push dword [0x884adc]
xor esi, esi
mov dword [esp + 0x38], connect
mov dword [esp + 0x14], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x40], 0x400
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp dword [eax + 8], 0x400
mov ecx, dword [eax + 0xc]
lea edx, [ecx + 0x400]
jl 0x66100d
cmp edx, dword [eax + 0x10]
ja 0x66100d
mov dword [eax + 0xc], edx
jmp 0x66101b
push 0x400
mov ecx, eax
call fcn.0046a3c0
mov ecx, eax
lea eax, [esp + 0x2c]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x34], 0x80000400
mov dword [esp + 0x38], ecx
mov eax, dword [eax + 8]
cmp eax, 1
jne 0x66108f
push dword [esp + 0x238]
lea eax, [esp + 0x64]
push dword [esp + 0x238]
push dword [esp + 0x22c]
push eax
push dword [esp + 0x2c]
push ebp
push edi
call fcn.00661620
mov ecx, dword [esp + 0x7c]
add esp, 0x1c
mov esi, dword [ecx]
mov ecx, dword [esp + 0x234]
push eax
movzx eax, word [ebx + 0x12]
add eax, dword [esp + 0x224]
push eax
mov dword [esp + 0x18], esi
call fcn.0049d640
jmp 0x661122
cmp eax, 3
jne 0x661122
lea eax, [esp + 0x10c]
mov dword [esp + 0x108], 0x80000080
mov dword [esp + 0x100], eax
lea eax, [esp + 0x100]
push eax
push 1
push dword [esp + 0x24]
mov dword [esp + 0x110], 1
push ebp
push edi
mov byte [esp + 0x120], 0
call fcn.006600e0
mov ecx, dword [esp + 0x24c]
add esp, 0x14
push 0
push dword [esp + 0x104]
call fcn.0046ab90
movzx ecx, word [ebx + 0x12]
mov esi, eax
push dword [esp + 0x100]
add ecx, dword [esp + 0x224]
push ecx
mov ecx, dword [esp + 0x23c]
mov dword [esp + 0x18], esi
call fcn.0048c370
lea ecx, [esp + 0x100]
call fcn.00469220
mov ecx, esi
call fcn.0045e050
mov ecx, dword [esp + 0x224]
mov esi, eax
push 1
push 0
mov dword [esp + 0x30], esi
call fcn.00661d20
imul esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x224]
push 0x10
mov dword [esp + 0x28], eax
push esi
call fcn.00661d20
mov eax, dword [esp + 0x224]
mov edx, dword [eax]
mov eax, dword [edx + 4]
add eax, 0xf
add eax, esi
and eax, 0xfffffff0
mov dword [edx + 4], eax
mov edx, dword [esp + 0x18]
test edx, edx
jle 0x6611e6
mov esi, dword [esp + 0x24]
mov ebx, edx
nop dword [eax]
mov eax, dword [edi]
lea ecx, [esp + 0x14]
push ebp
push ecx
mov ecx, edi
mov dword [esp + 0x1c], 0
call dword [eax + 0xc]
push dword [esp + 0x238]
mov eax, dword [esp + 0x18]
xor ecx, ecx
push dword [esp + 0x238]
push ebp
cmp dword [eax + 8], 1
push edi
cmove ecx, eax
push ecx
push dword [esp + 0x238]
push esi
push dword [esp + 0x2c]
call fcn.006605c0
mov ecx, dword [esp + 0x34]
add esp, 0x20
test ecx, ecx
je 0x6611d5
mov eax, dword [ecx]
push 1
call dword [eax]
add esi, dword [esp + 0x28]
sub ebx, 1
jne 0x661180
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x224]
movzx ecx, word [ebx + 0x12]
mov esi, dword [esp + 0x220]
mov eax, dword [eax]
add ecx, dword [eax]
add ecx, esi
push ecx
call fcn.0065feb0
add esp, 4
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], edx
test edx, edx
jle 0x661235
movzx eax, word [ebx + 0x12]
push dword [esp + 0x24]
mov ecx, dword [esp + 0x238]
add eax, 4
add eax, esi
push eax
call fcn.0049d640
mov ebx, dword [esp + 0x38]
xor ecx, ecx
mov eax, dword [esp + 0x30]
cmp ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x3c]
push dword [0x884adc]
cmove eax, ecx
add esi, 0x7f
mov dword [esp + 0x34], eax
and esi, 0xffffff80
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esi + 0xf]
and edx, 0xfffffff0
cmp esi, dword [eax + 8]
jg 0x66127d
lea ecx, [ebx + edx]
cmp ecx, dword [eax + 0xc]
jne 0x66127d
cmp dword [eax + 0x14], ebx
je 0x66127d
mov dword [eax + 0xc], ebx
jmp 0x661286
push edx
push ebx
mov ecx, eax
call fcn.0046a590
mov eax, dword [esp + 0x34]
mov dword [esp + 0x30], 0
test eax, eax
js case.0x660683.19
and eax, 0x3fffffff
mov ecx, 0x7d8954
push eax
mov eax, dword [0x7d8954]
push dword [esp + 0x30]
call dword [eax + 0x10]
jmp case.0x660683.19
lea eax, [esp + 0x70]
mov dword [esp + 0x6c], 0x80000080
mov dword [esp + 0x64], eax
lea eax, [esp + 0x64]
push eax
push 1
push dword [esp + 0x24]
mov dword [esp + 0x74], 1
push ebp
push edi
mov byte [esp + 0x84], 0
call fcn.006600e0
add esp, 0x14
lea ecx, [esp + 0x64]
push bind
push 0
push 0x20
call fcn.0045ebb0
mov dword [esp + 0x28], eax
cmp eax, 0xffffffff
je 0x661504
movzx esi, word [ebx + 0x12]
lea eax, [esp + 0x64]
add esi, dword [esp + 0x220]
lea ecx, [esp + 0x18c]
push eax
call fcn.0045ea20
mov ebx, dword [esp + 0x28]
lea ecx, [esp + 0x18c]
push ebx
push 0
call fcn.0045f420
push dword [esp + 0x18c]
mov ecx, dword [esp + 0x238]
push esi
call fcn.0048c370
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x190]
call fcn.0045ea90
lea eax, [ebx + 1]
push eax
lea ecx, [esp + 0x190]
call fcn.0045f380
push dword [esp + 0x18c]
mov ecx, dword [esp + 0x238]
lea eax, [esi + 4]
push eax
call fcn.0048c370
lea ecx, [esp + 0x18c]
call fcn.00469220
jmp 0x661504
lea eax, [esp + 0x70]
mov dword [esp + 0x6c], 0x80000080
mov dword [esp + 0x64], eax
lea eax, [esp + 0x64]
push eax
push 0
push dword [esp + 0x24]
mov dword [esp + 0x74], 1
push ebp
push edi
mov byte [esp + 0x84], 0
call fcn.006600e0
mov eax, dword [esp + 0x7c]
add esp, 0x14
add eax, 0xffffffff
je 0x661504
mov ecx, ebx
call fcn.00468e50
mov ecx, dword [esp + 0x68]
xor edx, edx
mov dword [esp + 0x28], eax
mov esi, ecx
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], connect
test ecx, ecx
jle 0x661423
xor eax, eax
test ecx, ecx
push 1
cmovs ecx, eax
lea eax, [esp + 0x54]
push ecx
push eax
push 0x7d8954
call fcn.00467b80
mov ecx, dword [esp + 0x78]
add esp, 0x10
mov edx, dword [esp + 0x50]
push ecx
push dword [esp + 0x68]
mov dword [esp + 0x5c], esi
push edx
call fcn.0045d480
mov esi, dword [esp + 0x5c]
add esp, 0xc
xor ebp, ebp
test esi, esi
je 0x6614a7
mov edi, dword [esp + 0x28]
xor eax, eax
push 0x7c
push esi
mov dword [esp + 0x28], eax
call fcn.0045d5b0
add esp, 8
test eax, eax
je 0x661460
mov byte [eax], 0
inc eax
mov dword [esp + 0x20], eax
mov al, byte [esi]
cmp al, 0x30
jl 0x661479
cmp al, 0x39
jg 0x661479
push 0
push esi
call fcn.0045d4c0
add esp, 8
or ebp, eax
jmp 0x661496
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0
push eax
push esi
mov ecx, edi
call fcn.00469320
test eax, eax
jne 0x661496
or ebp, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov esi, eax
test eax, eax
jne 0x661443
mov edi, dword [esp + 0x22c]
mov eax, dword [esp + 0x224]
movzx ecx, word [ebx + 0x12]
push ebp
mov eax, dword [eax]
add ecx, dword [eax]
add ecx, dword [esp + 0x224]
push ecx
mov ecx, ebx
call fcn.00468ea0
mov eax, dword [esp + 0x58]
mov dword [esp + 0x54], 0
test eax, eax
js 0x6614ed
and eax, 0x3fffffff
mov ecx, 0x7d8954
push eax
mov eax, dword [0x7d8954]
push dword [esp + 0x54]
call dword [eax + 0x10]
mov ebp, dword [esp + 0x230]
mov dword [esp + 0x50], 0
mov dword [esp + 0x58], connect
lea ecx, [esp + 0x64]
call fcn.00469220
push dword [esp + 0x1c]
push ebp
push edi
call fcn.0065ff90
mov ecx, dword [esp + 0x4c]
add esp, 0xc
cmp eax, 1
je 0x66159d
mov esi, dword [esp + 0x234]
jmp 0x66156e
xor edx, edx
cmp eax, 2
cmove edx, ecx
test edx, edx
je 0x66156e
mov eax, dword [esp + 0x228]
test eax, eax
je 0x66156e
mov eax, dword [eax + 0xc]
mov edx, dword [edx + 0xc]
and eax, 0xfffffffe
and edx, 0xfffffffe
je 0x661566
test eax, eax
je 0x66156e
push eax
push edx
call fcn.0045d370
mov ecx, dword [esp + 0x48]
add esp, 8
jmp 0x66156a
neg eax
sbb eax, eax
test eax, eax
je 0x6615b7
test ecx, ecx
je 0x661578
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [edi]
lea ecx, [esp + 0x40]
push ebp
push ecx
mov ecx, edi
call dword [eax + 0xc]
test eax, eax
je 0x6605f4
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x208
ret
test ecx, ecx
je 0x66158d
mov eax, dword [ecx]
push 1
call dword [eax]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x208
ret
test ecx, ecx
je 0x6615c1
mov eax, dword [ecx]
push 1
call dword [eax]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x208
ret