Function at 0x477848
Capabilities:
Reference http user-agent string

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x1e
push 0
push 0
dec ecx
jne 0x477850
push ebx
push esi
push edi
mov edi, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
call fcn.00404ccc
mov ebx, 0x48313c
xor eax, eax
push ebp
push 0x477fa5
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, edi
call fcn.0040480c
lea eax, [ebp - 0x1c]
call fcn.0040480c
cmp dword [0x48318c], 0
jne 0x4778e0
xor eax, eax
push ebp
push 0x4778bd
push dword fs:[eax]
mov dword fs:[eax], esp
xor ecx, ecx
mov dl, 1
mov eax, dword [0x46c3c4]
call fcn.00469268
mov dword [0x48318c], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4778e0
mov eax, 0x483140
mov edx, 0x477fc0
call fcn.00404860
mov edx, 0x478008
mov eax, dword [ebx]
call fcn.004729b8
push 0
push 1
xor ecx, ecx
mov edx, dword [0x483140]
mov eax, dword [ebx]
call fcn.00471dc8
test eax, eax
jne 0x477926
mov eax, dword [0x481398]
mov eax, dword [eax]
mov edx, dword [0x481828]
mov dword [edx], eax
jmp 0x477e9c
lea edx, [ebp - 0x30]
mov eax, dword [ebx]
mov eax, dword [eax + 0x48]
call fcn.004068a0
mov edx, dword [ebp - 0x30]
lea eax, [ebp - 0x24]
call fcn.00404aa4
mov edx, 0x478064
mov eax, dword [ebp - 0x24]
call fcn.00464cc8
mov eax, 0x483140
mov edx, 0x478074
call fcn.00404860
mov edx, 0x478008
mov eax, dword [ebx]
call fcn.004729b8
push 0
push 1
xor ecx, ecx
mov edx, dword [0x483140]
mov eax, dword [ebx]
call fcn.00471dc8
test eax, eax
jne 0x477991
mov eax, dword [0x481398]
mov eax, dword [eax]
mov edx, dword [0x481828]
mov dword [edx], eax
jmp 0x477e9c
lea edx, [ebp - 0x34]
mov eax, dword [ebx]
mov eax, dword [eax + 0x48]
call fcn.004068a0
mov edx, dword [ebp - 0x34]
lea eax, [ebp - 0x20]
call fcn.00404aa4
lea eax, [ebp - 0x38]
push eax
mov ecx, 0x4780c0
mov edx, 0x4780cc
mov eax, dword [ebp - 0x20]
call fcn.00462e48
mov edx, dword [ebp - 0x38]
lea eax, [ebp - 0x20]
call fcn.004048a4
lea eax, [ebp - 0x3c]
push eax
mov ecx, 0x4780dc
mov edx, 0x4780ec
mov eax, dword [ebp - 0x20]
call fcn.00462e48
mov edx, dword [ebp - 0x3c]
lea eax, [ebp - 0x20]
call fcn.004048a4
push 1
push 1
lea eax, [ebp - 0x40]
push eax
xor ecx, ecx
mov edx, 0x4780f8
mov eax, dword [ebp - 0x20]
call fcn.0046323c
mov edx, dword [ebp - 0x40]
lea eax, [ebp - 0x20]
call fcn.004048a4
lea eax, [ebp - 0x44]
push eax
xor ecx, ecx
mov edx, 0x478110
mov eax, dword [ebp - 0x20]
call fcn.00462e48
mov edx, dword [ebp - 0x44]
lea eax, [ebp - 0x20]
call fcn.004048a4
lea eax, [ebp - 0x48]
push eax
xor ecx, ecx
mov edx, 0x478138
mov eax, dword [ebp - 0x20]
call fcn.00462e48
mov edx, dword [ebp - 0x48]
lea eax, [ebp - 0x20]
call fcn.004048a4
mov edx, 0x478148
mov eax, dword [ebp - 0x20]
call fcn.00464cc8
mov edx, 0x28
mov al, 2
call fcn.0047c754
mov edx, 0x47815c
mov eax, dword [0x48318c]
call fcn.0046ccd0
lea ecx, [ebp - 0x4c]
mov edx, 0xcb
mov eax, dword [0x48318c]
call fcn.00469e68
mov edx, dword [ebp - 0x4c]
lea eax, [ebp - 0x28]
mov ecx, 0x478174
call fcn.004064f8
lea eax, [ebp - 0x10]
push eax
xor eax, eax
mov dword [ebp - 0x54], eax
xor eax, eax
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x54]
mov cx, 0xc
mov edx, 1
call fcn.004166c4
push 0
push 1
push 0x47818c
push dword [ebp - 0x24]
push 0x4781d8
push 0x4781e4
push dword [ebp - 0x20]
push 0x4781d8
push 0x478234
push 0x478248
push 0x478258
push 0x478268
push 0x478288
push 0x4782cc
push 0x478320
push 0x478330
push 0x478340
lea eax, [ebp - 0x68]
mov edx, 0xf
call fcn.00404b9c
mov edx, dword [ebp - 0x68]
lea eax, [ebp - 0x64]
call fcn.004151f4
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.00416894
add esp, 0x10
push 0
push 1
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x7c]
push eax
call fcn.004167c8
add esp, 0x10
lea edx, [ebp - 0x7c]
lea eax, [ebp - 0x6c]
call fcn.00414128
mov eax, dword [ebp - 0x6c]
mov edx, 0x478350
call fcn.00464cc8
mov edx, 0x2d
mov al, 2
call fcn.0047c754
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [eax]
call dword [eax + 0xec]
call fcn.004065c4
push 0x478360
push dword [0x483180]
push 0x47837c
push 0x478388
push 0x4783b0
push 0x4783cc
push 0x4783e8
push 0x478414
push 0x47843c
push 0x478464
push 0x478498
push 0x4784a8
push 0x4784dc
push 0x478500
push 0x47853c
push 0x478568
push 0x478584
push 0x4785a4
push 0x4785d4
push 0x47861c
push 0x478664
push 0x478680
push 0x478690
push 0x4786b8
lea eax, [ebp - 0x18]
mov edx, 0x18
call fcn.00404b9c
mov eax, dword [0x48159c]
mov eax, dword [eax + 0x18]
call fcn.00404adc
mov ebx, eax
test ebx, ebx
jle 0x477c4a
mov esi, 1
push dword [ebp - 0x18]
push 0x4786e8
push esi
push 1
lea eax, [ebp - 0x80]
push eax
mov ecx, 0x478728
mov edx, 0x478728
mov eax, dword [ebp - 0x14]
call fcn.0046323c
push dword [ebp - 0x80]
push 0x478734
lea eax, [ebp - 0x18]
mov edx, 4
call fcn.00404b9c
inc esi
dec ebx
jne 0x477c10
push dword [ebp - 0x18]
push 0x478740
push 0x47877c
lea eax, [ebp - 0x18]
mov edx, 3
call fcn.00404b9c
mov edx, 0x4787bc
mov eax, dword [ebp - 0x18]
call fcn.00464cc8
lea eax, [ebp - 0x90]
call fcn.00410ad0
push eax
push 0x4787cc
lea eax, [ebp - 0x94]
mov edx, dword [ebp - 0x18]
call fcn.00405080
mov eax, dword [ebp - 0x94]
push eax
lea eax, [ebp - 0x98]
call fcn.004064b4
push eax
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [eax]
call dword [eax + 0x1b0]
call fcn.004065c4
mov eax, dword [ebp - 0x98]
push eax
mov eax, dword [eax]
call dword [eax + 0x110]
call fcn.004065c4
lea eax, [ebp - 0x9c]
call fcn.004064b4
push eax
lea eax, [ebp - 0xac]
xor edx, edx
mov cl, 1
call fcn.00414ffc
push dword [ebp - 0xa0]
push dword [ebp - 0xa4]
push dword [ebp - 0xa8]
push dword [ebp - 0xac]
lea eax, [ebp - 0xbc]
mov edx, 0x4787ec
call fcn.004152b0
push dword [ebp - 0xb0]
push dword [ebp - 0xb4]
push dword [ebp - 0xb8]
push dword [ebp - 0xbc]
lea eax, [ebp - 0xc0]
call fcn.004064b4
push eax
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [eax]
call dword [eax + 0x20]
call fcn.004065c4
mov eax, dword [ebp - 0xc0]
push eax
mov eax, dword [eax]
call dword [eax + 0x2c]
call fcn.004065c4
mov edx, dword [ebp - 0x9c]
lea eax, [ebp - 0x2c]
mov ecx, 0x4787f4
call fcn.004064f8
lea eax, [ebp - 0xc4]
call fcn.00404f24
push eax
mov eax, dword [ebp - 0x2c]
push eax
mov eax, dword [eax]
call dword [eax + 0x28]
call fcn.004065c4
mov edx, dword [ebp - 0xc4]
lea eax, [ebp - 0x1c]
call fcn.00404aa4
cmp dword [0x483184], 0
jne 0x477e59
lea eax, [ebp - 0xc8]
call fcn.004064b4
push eax
lea eax, [ebp - 0xd8]
xor edx, edx
mov cl, 1
call fcn.00414ffc
push dword [ebp - 0xcc]
push dword [ebp - 0xd0]
push dword [ebp - 0xd4]
push dword [ebp - 0xd8]
lea eax, [ebp - 0xe8]
mov edx, 0x47880c
call fcn.004152b0
push dword [ebp - 0xdc]
push dword [ebp - 0xe0]
push dword [ebp - 0xe4]
push dword [ebp - 0xe8]
lea eax, [ebp - 0xec]
call fcn.004064b4
push eax
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [eax]
call dword [eax + 0x20]
call fcn.004065c4
mov eax, dword [ebp - 0xec]
push eax
mov eax, dword [eax]
call dword [eax + 0x2c]
call fcn.004065c4
mov edx, dword [ebp - 0xc8]
lea eax, [ebp - 0x2c]
mov ecx, 0x4787f4
call fcn.004064f8
lea eax, [ebp - 0xf0]
call fcn.00404f24
push eax
mov eax, dword [ebp - 0x2c]
push eax
mov eax, dword [eax]
call dword [eax + 0x28]
call fcn.004065c4
mov edx, dword [ebp - 0xf0]
mov eax, 0x483184
call fcn.00404aa4
cmp dword [ebp - 0x1c], 0
setne al
mov byte [ebp - 0x54], al
mov byte [ebp - 0x50], 1
lea edx, [ebp - 0x54]
mov eax, dword [0x4815f8]
mov eax, dword [eax]
xor ecx, ecx
call fcn.0047c79c
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [eax]
call dword [eax + 0xf8]
call fcn.004065c4
call fcn.0047c868
test al, al
jne 0x477e9c
mov eax, edi
mov edx, dword [ebp - 0x1c]
call fcn.00404860
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x477faf
lea eax, [ebp - 0xf0]
call fcn.00404f24
lea eax, [ebp - 0xec]
call fcn.004064b4
lea eax, [ebp - 0xe8]
mov edx, dword [0x4010e8]
mov ecx, 2
call fcn.004053a4
lea eax, [ebp - 0xc8]
call fcn.004064b4
lea eax, [ebp - 0xc4]
call fcn.00404f24
lea eax, [ebp - 0xc0]
call fcn.004064b4
lea eax, [ebp - 0xbc]
mov edx, dword [0x4010e8]
mov ecx, 2
call fcn.004053a4
lea eax, [ebp - 0x9c]
call fcn.004064b4
lea eax, [ebp - 0x98]
call fcn.004064b4
lea eax, [ebp - 0x94]
call fcn.00404f24
lea eax, [ebp - 0x90]
call fcn.00410ad0
lea eax, [ebp - 0x80]
call fcn.0040480c
lea eax, [ebp - 0x7c]
call fcn.00410ad0
lea eax, [ebp - 0x6c]
mov edx, 2
call fcn.00404830
lea eax, [ebp - 0x64]
call fcn.00410ad0
lea eax, [ebp - 0x4c]
call fcn.004064b4
lea eax, [ebp - 0x48]
mov edx, 5
call fcn.00404830
lea eax, [ebp - 0x34]
mov edx, 2
call fcn.00404f3c
lea eax, [ebp - 0x2c]
call fcn.004064b4
lea eax, [ebp - 0x28]
call fcn.004064b4
lea eax, [ebp - 0x24]
mov edx, 5
call fcn.00404830
lea eax, [ebp - 0x10]
call fcn.00410ad0
ret