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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x4f
push 0
push 0
dec ecx
jne 0x526431
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
call fcn.004052c8
mov eax, dword [ebp - 0xc]
call fcn.004052c8
lea eax, [ebp + 8]
call fcn.00405b34
xor eax, eax
push ebp
push 0x528916
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
add eax, 0x88
mov ecx, 0x528930
mov edx, dword [ebp + 8]
call fcn.004057f0
mov eax, dword [0x58ff04]
mov eax, dword [eax]
call fcn.00486080
mov eax, dword [0x58ff04]
mov eax, dword [eax]
call fcn.00486080
mov eax, dword [ebp - 4]
imul eax, dword [eax + 0x40], 0x1c
mov edx, dword [0x5900b4]
mov edx, dword [edx]
cmp dword [edx + eax*8 + 0x68], 0
je 0x5264ca
mov eax, dword [ebp - 4]
mov dword [eax + 0xf8], 0xffffffff
mov dword [ebp - 0x10], 0xffffff9b
jmp 0x52878c
mov eax, dword [ebp + 8]
call fcn.0049de5c
test al, al
je 0x52652f
lea eax, [ebp - 0x12c]
mov ecx, 0x528930
mov edx, dword [ebp + 8]
call fcn.004057f0
mov eax, dword [ebp - 0x12c]
call fcn.0049dfd0
mov ecx, 3
mov edx, 0x52893c
mov eax, dword [ebp - 4]
call fcn.0052982c
mov eax, dword [ebp - 4]
imul eax, dword [eax + 0x40], 0x1c
mov edx, dword [0x5900b4]
mov edx, dword [edx]
lea eax, [edx + eax*8 + 0x3c]
mov edx, 0x528958
call fcn.00405560
mov dword [ebp - 0x10], 0xffffff9c
jmp 0x52878c
lea eax, [ebp - 0x130]
mov ecx, 0x528930
mov edx, dword [ebp + 8]
call fcn.004057f0
mov eax, dword [ebp - 0x130]
call fcn.0049de5c
test al, al
je 0x526ef0
mov eax, dword [ebp - 4]
imul eax, dword [eax + 0x40], 0x1c
mov edx, dword [0x5900b4]
mov edx, dword [edx]
mov eax, dword [edx + eax*8 + 0x80]
lea edx, [ebp - 0x134]
call fcn.00409f18
mov eax, dword [ebp - 0x134]
mov edx, 0x528964
call fcn.004058a0
jne 0x52663c
lea eax, [ebp - 0x138]
mov ecx, 0x528930
mov edx, dword [ebp + 8]
call fcn.004057f0
mov eax, dword [ebp - 0x138]
call fcn.0049dfd0
xor eax, eax
push ebp
push 0x5265f2
push dword fs:[eax]
mov dword fs:[eax], esp
push 0xffff
lea eax, [ebp - 0x13c]
mov ecx, 0x528930
mov edx, dword [ebp + 8]
call fcn.004057f0
mov ecx, dword [ebp - 0x13c]
mov dl, 1
mov eax, dword [0x489ae0]
call fcn.0048aac4
mov dword [ebp - 0x14], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x526f98
xor eax, eax
push ebp
push 0x526e88
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x526768
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
imul ebx, dword [eax + 0x40], 0x1c
mov eax, dword [0x5900b4]
mov eax, dword [eax]
mov eax, dword [eax + ebx*8 + 0xc]
mov edx, 0x52896c
call fcn.004058a0
je 0x526690
mov eax, dword [0x5900b4]
mov eax, dword [eax]
mov eax, dword [eax + ebx*8 + 0xc0]
mov edx, 0x52897c
call fcn.00405224
jne 0x5266b2
mov ecx, 3
mov edx, 0x528984
mov eax, dword [ebp - 4]
call fcn.0052982c
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00526028
jmp 0x52675e
mov eax, dword [ebp - 4]
imul ebx, dword [eax + 0x40], 0x1c
mov eax, dword [0x5900b4]
mov eax, dword [eax]
mov eax, dword [eax + ebx*8 + 0xc]
mov edx, 0x5289ac
call fcn.004058a0
je 0x526723
mov eax, dword [0x5900b4]
mov eax, dword [eax]
mov eax, dword [eax + ebx*8 + 0xc0]
mov edx, 0x5289c0
call fcn.00405224
je 0x526723
mov eax, dword [ebp - 4]
imul eax, dword [eax + 0x40], 0x1c
mov edx, dword [0x5900b4]
mov edx, dword [edx]
mov eax, dword [edx + eax*8 + 0xc]
mov edx, 0x5289cc
call fcn.004058a0
je 0x526723
mov eax, dword [0x5900b4]
mov eax, dword [eax]
mov eax, dword [eax + ebx*8 + 0xc0]
mov edx, 0x5289dc
call fcn.00405224
jne 0x526732
mov eax, dword [ebp - 4]
mov dword [eax + 0x140], 0xffffffff
jmp 0x52675e
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00525300
test eax, eax
jne 0x52675e
mov ecx, 3
mov edx, 0x528984
mov eax, dword [ebp - 4]
call fcn.0052982c
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00524ee8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x526772
mov eax, dword [0x58ff04]
mov eax, dword [eax]
call fcn.00486080
mov eax, dword [0x58ff04]
mov eax, dword [eax]
call fcn.00486080
mov eax, dword [ebp - 4]
cmp dword [eax + 0x140], 0
je 0x526dcb
xor eax, eax
push ebp
push 0x526a6f
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x24]
call fcn.00404e08
push 2
lea eax, [ebp - 0x144]
mov ecx, 0x528930
mov edx, dword [ebp + 8]
call fcn.004057f0
mov ecx, dword [ebp - 0x144]
mov dl, 1
mov eax, dword [0x489ae0]
call fcn.0048aac4
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax]
call dword [edx]
cmp edx, 0
jne 0x5267f3
cmp eax, 0x3e8
jbe 0x5269c6
jmp 0x5267f9
jle 0x5269c6
lea eax, [ebp - 0x128]
mov edx, pe_nt_image_headers32
call fcn.004085ec
push 0
push 0
mov eax, dword [ebp - 0x14]
call fcn.0041f37c
lea edx, [ebp - 0x128]
mov ecx, 3
mov eax, dword [ebp - 0x14]
call fcn.0041f588
lea eax, [ebp - 0x148]
lea edx, [ebp - 0x128]
mov ecx, pe_nt_image_headers32
call fcn.00405088
mov eax, dword [ebp - 0x148]
lea edx, [ebp - 0x18]
call fcn.00409ec8
lea eax, [ebp - 0x1c]
mov edx, 0x5289f0
call fcn.00404ea0
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
call fcn.00405224
jne 0x526873
lea eax, [ebp - 0x24]
mov edx, 0x5289fc
call fcn.00404ea0
lea eax, [ebp - 0x128]
mov edx, pe_nt_image_headers32
call fcn.004085ec
push 0
push 4
mov eax, dword [ebp - 0x14]
call fcn.0041f37c
lea edx, [ebp - 0x128]
mov ecx, 0x10
mov eax, dword [ebp - 0x14]
call fcn.0041f588
lea eax, [ebp - 0x14c]
lea edx, [ebp - 0x128]
mov ecx, pe_nt_image_headers32
call fcn.00405088
mov eax, dword [ebp - 0x14c]
lea edx, [ebp - 0x18]
call fcn.00409ec8
lea eax, [ebp - 0x1c]
mov edx, 0x528a0c
call fcn.00404ea0
mov eax, dword [ebp - 0x18]
mov edx, 0x528a0c
call fcn.00405224
je 0x5269b9
mov eax, dword [ebp - 0x18]
mov edx, 0x528a20
call fcn.00405224
je 0x5269b9
mov eax, dword [ebp - 0x18]
mov edx, 0x528a34
call fcn.00405224
je 0x5269b9
mov eax, dword [ebp - 0x18]
mov edx, 0x528a48
call fcn.00405224
je 0x5269b9
mov eax, dword [ebp - 0x18]
mov edx, 0x528a5c
call fcn.00405224
je 0x5269b9
mov eax, dword [ebp - 0x18]
mov edx, 0x528a70
call fcn.00405224
je 0x5269b9
mov eax, dword [ebp - 0x18]
mov edx, 0x528a84
call fcn.00405224
je 0x5269b9
mov eax, dword [ebp - 0x18]
mov edx, 0x528a98
call fcn.00405224
je 0x5269b9
mov eax, dword [ebp - 0x18]
mov edx, 0x528aac
call fcn.00405224
je 0x5269b9
mov eax, dword [ebp - 0x18]
mov edx, 0x528abc
call fcn.00405224
je 0x5269b9
mov eax, dword [ebp - 0x18]
mov edx, 0x528acc
call fcn.00405224
je 0x5269b9
mov eax, dword [ebp - 0x18]
mov edx, 0x528ae0
call fcn.00405224
je 0x5269b9
mov eax, dword [ebp - 0x18]
mov edx, 0x528af4
call fcn.00405224
je 0x5269b9
mov eax, dword [ebp - 0x18]
mov edx, 0x528b04
call fcn.00405224
jne 0x5269c6
lea eax, [ebp - 0x24]
mov edx, 0x528b18
call fcn.00404ea0
cmp dword [ebp - 0x14], 0
je 0x5269d4
mov eax, dword [ebp - 0x14]
call fcn.00403f7c
lea edx, [ebp - 0x150]
mov eax, dword [ebp - 0x24]
call fcn.00409ec8
cmp dword [ebp - 0x150], 0
jne 0x526a38
lea eax, [ebp - 0x154]
mov ecx, 0x528930
mov edx, dword [ebp + 8]
call fcn.004057f0
mov eax, dword [ebp - 0x154]
call fcn.0049dfd0
push 0xffff
lea eax, [ebp - 0x158]
mov ecx, 0x528930
mov edx, dword [ebp + 8]
call fcn.004057f0
mov ecx, dword [ebp - 0x158]
mov dl, 1
mov eax, dword [0x489ae0]
call fcn.0048aac4
mov dword [ebp - 0x14], eax
jmp 0x526a62
push 2
lea eax, [ebp - 0x15c]
mov ecx, 0x528930
mov edx, dword [ebp + 8]
call fcn.004057f0
mov ecx, dword [ebp - 0x15c]
mov dl, 1
mov eax, dword [0x489ae0]
call fcn.0048aac4
mov dword [ebp - 0x14], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x526e7b
lea eax, [ebp - 0x184]
mov ecx, 0x528930
mov edx, dword [ebp + 8]
call fcn.004057f0
mov eax, dword [ebp - 0x184]
call fcn.0049dfd0
xor eax, eax
push ebp
push 0x526e2e
push dword fs:[eax]
mov dword fs:[eax], esp
push 0xffff
lea eax, [ebp - 0x188]
mov ecx, 0x528930
mov edx, dword [ebp + 8]
call fcn.004057f0
mov ecx, dword [ebp - 0x188]
mov dl, 1
mov eax, dword [0x489ae0]
call fcn.0048aac4
mov dword [ebp - 0x14], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x526e7b
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x526f98
lea eax, [ebp - 0x198]
mov ecx, 0x528930
mov edx, dword [ebp + 8]
call fcn.004057f0
mov eax, dword [ebp - 0x198]
call fcn.0049dfd0
xor eax, eax
push ebp
push 0x526f53
push dword fs:[eax]
mov dword fs:[eax], esp
push 0xffff
lea eax, [ebp - 0x19c]
mov ecx, 0x528930
mov edx, dword [ebp + 8]
call fcn.004057f0
mov ecx, dword [ebp - 0x19c]
mov dl, 1
mov eax, dword [0x489ae0]
call fcn.0048aac4
mov dword [ebp - 0x14], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x526f98
xor eax, eax
push ebp
push 0x526fbe
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp - 0x14], 0
je 0x526fb4
mov eax, dword [ebp - 0x14]
call fcn.00403f7c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x526fc8
push 0x22
lea eax, [ebp - 0x1a4]
mov ecx, 0x528930
mov edx, dword [ebp + 8]
call fcn.004057f0
mov ecx, dword [ebp - 0x1a4]
mov dl, 1
mov eax, dword [0x489ae0]
call fcn.0048aac4
mov edx, dword [ebp - 4]
mov dword [edx + 0x44], eax
xor ecx, ecx
mov dl, 1
mov eax, dword [0x436ff0]
call fcn.00437d54
mov ebx, eax
mov eax, dword [ebp - 4]
mov dword [eax + 0x58], ebx
mov eax, ebx
mov edx, 0x3e8
call fcn.00437eec
mov eax, dword [ebp - 4]
push eax
push 0x524c98
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x58]
call fcn.00437efc
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0xb0], edx
mov eax, dword [ebp - 4]
mov dword [eax + 0xb8], 0xfffffff6
mov dword [eax + 0xbc], 0xffffffff
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x58]
mov dl, 1
call fcn.00437edc
mov eax, dword [ebp - 4]
mov dword [eax + 0xac], 0xffffffff
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x98], eax
mov dword [ecx + 0x9c], edx
mov eax, dword [ebp - 4]
cmp dword [eax + 0x9c], 0xffffffff
jne 0x5270ac
cmp dword [eax + 0x98], 0xffffffff
jne 0x5270ac
mov eax, dword [ebp - 4]
mov dword [eax + 0x98], 0
mov dword [eax + 0x9c], 0
mov eax, dword [ebp - 4]
mov dword [eax + 0x90], 0xffffffff
mov dword [eax + 0x94], 0xffffffff
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x9c]
mov eax, dword [eax + 0x98]
add eax, 1
adc edx, 0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x68], eax
mov dword [ecx + 0x6c], edx
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x68]
mov dword [eax + 0x128], ecx
mov ecx, dword [edx + 0x6c]
mov dword [eax + 0x12c], ecx
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0xa8], edx
mov eax, dword [ebp - 4]
add eax, 0x7c
mov edx, dword [ebp - 8]
call fcn.00404e5c
mov eax, dword [ebp - 4]
push eax
push 0x5144c4
mov eax, dword [ebp - 4]
call fcn.004258d0
xor edx, edx
push ebp
push 0x5283f5
push dword fs:[edx]
mov dword fs:[edx], esp
mov dl, 1
mov eax, dword [0x41ac6c]
call fcn.00403f4c
mov edx, dword [ebp - 4]
mov dword [edx + 0x4c], eax
xor ecx, ecx
mov dl, 1
mov eax, dword [0x4f4fec]
call fcn.004f6218
mov ebx, eax
mov eax, dword [ebp - 4]
mov dword [eax + 0x18c], ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
mov dword [ebx + 0x188], eax
mov eax, dword [ebp - 4]
imul eax, dword [eax + 0x40], 0x1c
mov edx, dword [0x5900b4]
mov edx, dword [edx]
mov eax, dword [edx + eax*8 + 0x80]
lea edx, [ebp - 0x1a8]
call fcn.00409f18
mov eax, dword [ebp - 0x1a8]
mov edx, 0x528964
call fcn.004058a0
jne 0x5271c3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
add eax, 0x170
call fcn.00404e08
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
add eax, 0x174
call fcn.00404e08
jmp 0x527222
mov eax, dword [ebp - 4]
cmp dword [eax + 0x9c], 0
jne 0x5271da
cmp dword [eax + 0x98], 0
jbe 0x527222
jmp 0x5271dc
jle 0x527222
mov eax, dword [ebp - 4]
push dword [eax + 0x9c]
push dword [eax + 0x98]
lea eax, [ebp - 0x1ac]
call fcn.0040a504
mov edx, dword [ebp - 0x1ac]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
add eax, 0x170
call fcn.00404e5c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
add eax, 0x174
call fcn.00404e08
mov eax, dword [ebp - 4]
imul ebx, dword [eax + 0x40], 0x1c
mov eax, dword [0x5900b4]
mov eax, dword [eax]
mov eax, dword [eax + ebx*8 + 0xc]
mov edx, 0x5289ac
call fcn.004058a0
je 0x52725e
mov eax, dword [0x5900b4]
mov eax, dword [eax]
mov eax, dword [eax + ebx*8 + 0xc0]
mov edx, 0x5289c0
call fcn.00405224
jne 0x52739d
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x9c]
mov eax, dword [eax + 0x98]
add eax, 0x7a120
adc edx, 0
push edx
push eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x154]
mov eax, dword [eax + 0x150]
sub eax, 1
sbb edx, 0
cmp edx, dword [esp + 4]
jne 0x52729b
cmp eax, dword [esp]
pop edx
pop eax
jbe 0x527311
jmp 0x52729f
pop edx
pop eax
jle 0x527311
mov eax, dword [ebp - 4]
push dword [eax + 0x9c]
push dword [eax + 0x98]
lea eax, [ebp - 0x1b0]
call fcn.0040a504
mov edx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
add eax, 0x170
call fcn.00404e5c
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x9c]
mov eax, dword [eax + 0x98]
add eax, 0x7a120
adc edx, 0
push edx
push eax
lea eax, [ebp - 0x1b4]
call fcn.0040a504
mov edx, dword [ebp - 0x1b4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
add eax, 0x174
call fcn.00404e5c
jmp 0x52737f
mov eax, dword [ebp - 4]
push dword [eax + 0x9c]
push dword [eax + 0x98]
lea eax, [ebp - 0x1b8]
call fcn.0040a504
mov edx, dword [ebp - 0x1b8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
add eax, 0x170
call fcn.00404e5c
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x154]
mov eax, dword [eax + 0x150]
sub eax, 1
sbb edx, 0
push edx
push eax
lea eax, [ebp - 0x1bc]
call fcn.0040a504
mov edx, dword [ebp - 0x1bc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
add eax, 0x174
call fcn.00404e5c
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x150]
mov dword [eax + 0x90], ecx
mov ecx, dword [edx + 0x154]
mov dword [eax + 0x94], ecx
mov eax, dword [ebp - 4]
imul ebx, dword [eax + 0x40], 0x1c
mov eax, dword [0x5900b4]
mov eax, dword [eax]
mov eax, dword [eax + ebx*8 + 0xc]
mov edx, 0x5289cc
call fcn.004058a0
je 0x5273d9
mov eax, dword [0x5900b4]
mov eax, dword [eax]
mov eax, dword [eax + ebx*8 + 0xc0]
mov edx, 0x5289dc
call fcn.00405224
jne 0x527474
push dword [ebp - 8]
push 0x528b28
mov eax, dword [ebp - 4]
push dword [eax + 0x9c]
push dword [eax + 0x98]
lea eax, [ebp - 0x1c0]
call fcn.0040a504
push dword [ebp - 0x1c0]
lea eax, [ebp - 8]
mov edx, 3
call fcn.00405198
mov eax, dword [ebp - 4]
mov dword [eax + 0x180], 0
mov dword [eax + 0x184], 0
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x98]
mov dword [eax + 0x178], ecx
mov ecx, dword [edx + 0x9c]
mov dword [eax + 0x17c], ecx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
add eax, 0x170
call fcn.00404e08
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
add eax, 0x174
call fcn.00404e08
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 8]
call fcn.00404ea0
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x18c]
mov eax, dword [ebp - 4]
mov dword [ebx + 0x2d4], eax
mov dword [ebx + 0x2d0], 0x516da8
mov eax, dword [ebp - 4]
mov dword [ebx + 0x2e4], eax
mov dword [ebx + 0x2e0], 0x516228
mov eax, dword [ebp - 4]
mov dword [ebx + 0x2dc], eax
mov dword [ebx + 0x2d8], 0x516810
mov eax, dword [ebp - 4]
mov dword [ebx + 0x2c4], eax
mov dword [ebx + 0x2c0], 0x516d1c
mov eax, dword [ebp - 4]
mov dword [ebx + 0x334], eax
mov dword [ebx + 0x330], 0x516814
lea eax, [ebx + 0x114]
mov edx, 0x528b40
call fcn.00404e5c
lea edx, [ebp - 0x1c4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x13c]
call fcn.00409ec8
cmp dword [ebp - 0x1c4], 0
je 0x527525
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
add eax, 0x17c
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x13c]
call fcn.00404e5c
lea edx, [ebp - 0x1c8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xec]
call fcn.00409ec8
cmp dword [ebp - 0x1c8], 0
jne 0x52755c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
add eax, 0x110
mov edx, 0x528b4c
call fcn.00404e5c
jmp 0x527578
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
add eax, 0x110
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0xec]
call fcn.00404e5c
lea edx, [ebp - 0x1cc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe8]
call fcn.00409ec8
cmp dword [ebp - 0x1cc], 0
je 0x5275b3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
add eax, 0xfc
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0xe8]
call fcn.00404e5c
jmp 0x5275d9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
add eax, 0xfc
mov edx, dword [ebp - 4]
imul edx, dword [edx + 0x40], 0x1c
mov ecx, dword [0x5900b4]
mov ecx, dword [ecx]
mov edx, dword [ecx + edx*8 + 0x78]
call fcn.004050a0
mov eax, dword [0x58feb8]
mov eax, dword [eax]
mov edx, 0x528b8c
call fcn.004058a0
jne 0x5276d8
lea edx, [ebp - 0x1d0]
mov eax, dword [0x58ffb4]
mov eax, dword [eax]
call fcn.00409f18
mov eax, dword [ebp - 0x1d0]
xor edx, edx
call fcn.004058a0
je 0x5276d8
lea edx, [ebp - 0x1d4]
mov eax, dword [0x58fb9c]
mov eax, dword [eax]
call fcn.00409f18
mov eax, dword [ebp - 0x1d4]
xor edx, edx
call fcn.004058a0
je 0x5276d8
mov eax, dword [0x58feb8]
mov eax, dword [eax]
mov edx, 0x528b8c
call fcn.004058a0
jne 0x5276d8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
add eax, 0x90
mov edx, dword [0x58ffb4]
mov edx, dword [edx]
call fcn.004050a0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
add eax, 0x94
mov edx, dword [0x58fb9c]
mov edx, dword [edx]
call fcn.004050a0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
add eax, 0xa8
mov edx, dword [0x58fd34]
mov edx, dword [edx]
call fcn.004050a0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
add eax, 0xac
mov edx, dword [0x58ffe8]
mov edx, dword [edx]
call fcn.004050a0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
add eax, 0x104
mov edx, dword [0x58fc14]
mov edx, dword [edx]
call fcn.004050a0
lea edx, [ebp - 0x1d8]
mov eax, dword [ebp - 8]
call fcn.00409ec8
mov edx, dword [ebp - 0x1d8]
mov eax, 0x528ba0
call fcn.0040541c
test eax, eax
jle 0x527738
mov al, byte [0x528ba4]
push eax
lea eax, [ebp - 0x1dc]
push eax
lea edx, [ebp - 0x1e0]
mov eax, dword [ebp - 8]
call fcn.00409ec8
mov eax, dword [ebp - 0x1e0]
mov ecx, 0x528bb0
mov edx, 0x528ba0
call fcn.004105ac
mov edx, dword [ebp - 0x1dc]
lea eax, [ebp - 8]
call fcn.00404ea0
lea edx, [ebp - 0x1e4]
mov eax, dword [ebp - 0xc]
call fcn.00409ec8
mov edx, dword [ebp - 0x1e4]
mov eax, 0x528ba0
call fcn.0040541c
test eax, eax
jle 0x527798
mov al, byte [0x528ba4]
push eax
lea eax, [ebp - 0x1e8]
push eax
lea edx, [ebp - 0x1ec]
mov eax, dword [ebp - 0xc]
call fcn.00409ec8
mov eax, dword [ebp - 0x1ec]
mov ecx, 0x528bb0
mov edx, 0x528ba0
call fcn.004105ac
mov edx, dword [ebp - 0x1e8]
lea eax, [ebp - 0xc]
call fcn.00404ea0
lea edx, [ebp - 0x1f0]
mov eax, dword [ebp - 0xc]
call fcn.00409ec8
cmp dword [ebp - 0x1f0], 0
jne 0x5277c7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
add eax, 0xec
mov edx, dword [ebp - 8]
call fcn.00404e5c
jmp 0x5277dd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
add eax, 0xec
mov edx, dword [ebp - 0xc]
call fcn.00404e5c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
call fcn.004fce3c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
mov eax, dword [eax + 0x12c]
mov edx, dword [ebp - 4]
mov dword [edx + 0xe0], eax
mov eax, dword [ebp - 4]
imul ebx, dword [eax + 0x40], 0x1c
mov eax, dword [0x5900b4]
mov eax, dword [eax]
mov eax, dword [eax + ebx*8 + 0xc]
mov edx, 0x5289ac
call fcn.004058a0
je 0x52783f
mov eax, dword [0x5900b4]
mov eax, dword [eax]
mov eax, dword [eax + ebx*8 + 0xc0]
mov edx, 0x5289c0
call fcn.00405224
jne 0x5279e3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
cmp dword [eax + 0x12c], 0xce
jne 0x5279e3
xor eax, eax
push ebp
push 0x5278ca
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x44]
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
push edx
push eax
mov eax, ebx
call fcn.0041f37c
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.0041f37c
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x4c]
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, eax
mov edx, dword [ebx + 4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.0041fad0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5278d1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.00403f7c
ret
mov eax, dword [ebp - 4]
imul ebx, dword [eax + 0x40], 0x1c
mov eax, dword [0x5900b4]
mov eax, dword [eax]
mov eax, dword [eax + ebx*8 + 0xc]
mov edx, 0x5289cc
call fcn.004058a0
je 0x527a1f
mov eax, dword [0x5900b4]
mov eax, dword [eax]
mov eax, dword [eax + ebx*8 + 0xc0]
mov edx, 0x5289dc
call fcn.00405224
jne 0x527c0d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
cmp dword [eax + 0x12c], 0xc8
je 0x527c0d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
cmp dword [eax + 0x12c], 0xce
je 0x527c0d
xor eax, eax
push ebp
push 0x527ac3
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x44]
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
push edx
push eax
mov eax, ebx
call fcn.0041f37c
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.0041f37c
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x4c]
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, eax
mov edx, dword [ebx + 4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.0041fad0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x527aca
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.00403f7c
ret
xor edx, edx
push ebp
push 0x527cf1
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 4]
cmp dword [eax + 0x114], 3
jge 0x527ccb
lea edx, [ebp - 0x20c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
mov eax, dword [eax + 0x184]
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov edx, dword [ebp - 0x20c]
mov eax, 0x528bc4
call fcn.0040541c
test eax, eax
jg 0x527ccb
lea edx, [ebp - 0x210]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
mov eax, dword [eax + 0x184]
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov edx, dword [ebp - 0x210]
mov eax, 0x528bd4
call fcn.0040541c
test eax, eax
jg 0x527ccb
lea edx, [ebp - 0x214]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
mov eax, dword [eax + 0x184]
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov edx, dword [ebp - 0x214]
mov eax, 0x528bec
call fcn.0040541c
test eax, eax
jg 0x527ccb
mov eax, dword [ebp - 4]
mov dword [eax + 0xa8], 0xffffffff
mov eax, dword [ebp - 4]
inc dword [eax + 0x114]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x58]
test eax, eax
je 0x527cdc
xor edx, edx
call fcn.00437edc
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0xb0], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x527d08
mov eax, dword [ebp - 4]
cmp dword [eax + 0xa8], 0
jne 0x527d20
mov eax, dword [ebp - 4]
cmp dword [eax + 0xac], 0
je 0x527d4c
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0xb0], edx
mov eax, dword [ebp - 4]
call fcn.00524ddc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x98]
mov dword [ebp - 0x10], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x52878c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
test eax, eax
je 0x528061
mov eax, dword [eax + 0x12c]
mov edx, dword [ebp - 4]
mov dword [edx + 0xe0], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
mov eax, dword [eax + 0x12c]
cmp eax, 0xc8
je 0x527d89
cmp eax, 0xce
jne 0x527de8
mov eax, dword [ebp - 4]
imul eax, dword [eax + 0x40], 0x1c
mov edx, dword [0x5900b4]
mov edx, dword [edx]
cmp dword [edx + eax*8 + 0x68], 0
jne 0x527dd7
mov eax, dword [ebp - 4]
cmp dword [eax + 0xa8], 0
jne 0x527dd7
lea edx, [ebp - 0x218]
mov eax, dword [0x58fae8]
mov eax, dword [eax]
call fcn.00409ec8
cmp dword [ebp - 0x218], 0
jne 0x527dd7
mov eax, dword [ebp - 4]
push eax
push 0x515ce4
mov eax, dword [ebp - 4]
call fcn.004258d0
mov eax, dword [0x58ff04]
mov eax, dword [eax]
call fcn.00486080
jmp 0x528061
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
cmp dword [eax + 0x12c], 0x195
jne 0x527e57
mov eax, dword [ebp - 4]
imul eax, dword [eax + 0x40], 0x1c
mov edx, dword [0x5900b4]
mov edx, dword [edx]
mov eax, dword [edx + eax*8 + 0xc]
mov edx, 0x528bf4
call fcn.004058a0
je 0x527e3b
mov eax, dword [ebp - 4]
imul eax, dword [eax + 0x40], 0x1c
mov edx, dword [0x5900b4]
mov edx, dword [edx]
mov eax, dword [edx + eax*8 + 0xc]
mov edx, 0x528c00
call fcn.004058a0
jne 0x527e57
mov dword [ebp - 0x10], 0xfffffe6b
mov eax, dword [ebp - 4]
call fcn.00524ddc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x52878c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18c]
cmp dword [eax + 0x12c], 0x1a0
jne 0x527ff1
lea eax, [ebp - 0x220]
mov ecx, 0x528930
mov edx, dword [ebp + 8]
call fcn.004057f0
mov eax, dword [ebp - 0x220]
lea ecx, [ebp - 0x21c]
mov edx, 0x528bb8
call fcn.0049dc9c
mov eax, dword [ebp - 0x21c]
push eax
lea eax, [ebp - 0x224]
mov ecx, 0x528930
mov edx, dword [ebp + 8]
call fcn.004057f0
mov eax, dword [ebp - 0x224]
pop edx
call fcn.0049dfac
mov eax, dword [0x58ff04]
mov eax, dword [eax]
call fcn.00486080
lea edx, [ebp - 0x22c]
mov eax, dword [ebp + 8]
call fcn.0049dd64
mov edx, dword [ebp - 0x22c]
lea eax, [ebp - 0x228]
call fcn.004050a0
mov eax, dword [ebp - 0x228]
mov edx, dword [0x590128]
mov edx, dword [edx]
call fcn.0040541c
dec eax
jle 0x527f3e
lea ecx, [ebp - 0x230]
mov edx, 0x528c0c
mov eax, dword [ebp + 8]
call fcn.0049dc9c
mov edx, dword [ebp - 0x230]
mov eax, dword [ebp + 8]
call fcn.0049dfac
mov eax, dword [ebp - 4]
imul eax, dword [eax + 0x40], 0x1c
mov edx, dword [0x5900b4]
mov edx, dword [edx]
lea eax, [edx + eax*8 + 0x2c]
mov edx, 0x5289fc
call fcn.00404e5c
lea edx, [ebp - 0x238]
mov eax, dword [ebp + 8]
call fcn.0049dd64
mov edx, dword [ebp - 0x238]
lea eax, [ebp - 0x234]
call fcn.004050a0
mov eax, dword [ebp - 0x234]
mov edx, dword [0x58fca8]
mov edx, dword [edx]
call fcn.0040541c
dec eax
jle 0x527fb1
lea ecx, [ebp - 0x23c]
mov edx, 0x528c1c
mov eax, dword [ebp + 8]
call fcn.0049dc9c
mov edx, dword [ebp - 0x23c]
mov eax, dword [ebp + 8]
call fcn.0049dfac
mov eax, dword [ebp - 4]
imul eax, dword [eax + 0x40], 0x1c
mov edx, dword [0x5900b4]
mov edx, dword [edx]
lea eax, [edx + eax*8 + 0x2c]
mov edx, 0x528b18
call fcn.00404e5c
mov eax, dword [0x58ff04]
mov eax, dword [eax]
call fcn.00486080
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x68]
mov dword [eax + 0x90], ecx
mov ecx, dword [edx + 0x6c]
mov dword [eax + 0x94], ecx
mov dword [ebp - 0x10], 0xffffff9c
mov eax, dword [ebp - 4]
call fcn.00524ddc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x52878c
mov eax, dword [ebp - 4]
cmp dword [eax + 0xf8], 0
jne 0x528035
mov eax, dword [ebp - 4]
cmp dword [eax + 0xa8], 0
jne 0x528035
lea edx, [ebp - 0x240]
mov eax, dword [0x58fae8]
mov eax, dword [eax]
call fcn.00409ec8
cmp dword [ebp - 0x240], 0
jne 0x528035
mov eax, dword [ebp - 4]
push eax
push 0x515ce4
mov eax, dword [ebp - 4]
call fcn.004258d0
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0xb0], edx
mov eax, dword [ebp - 4]
call fcn.00524ddc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x98]
mov dword [ebp - 0x10], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x52878c
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x94]
mov eax, dword [eax + 0x90]
mov ecx, dword [ebp - 4]
sub eax, dword [ecx + 0x68]
sbb edx, dword [ecx + 0x6c]
test edx, edx
jge 0x528084
neg eax
adc edx, 0
neg edx
cmp edx, 0
jne 0x528094
cmp eax, 0xa
jae 0x52831c
jmp 0x52809a
jge 0x52831c
xor eax, eax
push ebp
push 0x5282ec
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x52811a
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x44]
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
push edx
push eax
mov eax, ebx
call fcn.0041f37c
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.0041f37c
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x4c]
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, eax
mov edx, dword [ebx + 4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.0041fad0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x528121
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.00403f7c
ret
xor eax, eax
push ebp
push 0x52838e
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x44]
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
push edx
push eax
mov eax, ebx
call fcn.0041f37c
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.0041f37c
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x4c]
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, eax
mov edx, dword [ebx + 4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.0041fad0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x528395
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.00403f7c
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x528920
lea eax, [ebp - 0x280]
mov edx, 3
call fcn.0040553c
lea eax, [ebp - 0x274]
call fcn.00404e08
lea eax, [ebp - 0x270]
mov edx, 5
call fcn.0040553c
lea eax, [ebp - 0x25c]
call fcn.00404e08
lea eax, [ebp - 0x258]
mov edx, 2
call fcn.0040553c
lea eax, [ebp - 0x250]
call fcn.00404e08
lea eax, [ebp - 0x24c]
mov edx, 3
call fcn.0040553c
lea eax, [ebp - 0x240]
call fcn.00404e08
lea eax, [ebp - 0x23c]
mov edx, 2
call fcn.0040553c
lea eax, [ebp - 0x234]
call fcn.00404e08
lea eax, [ebp - 0x230]
mov edx, 2
call fcn.0040553c
lea eax, [ebp - 0x228]
call fcn.00404e08
lea eax, [ebp - 0x224]
mov edx, 3
call fcn.0040553c
lea eax, [ebp - 0x218]
mov edx, 4
call fcn.00404e2c
lea eax, [ebp - 0x208]
mov edx, 6
call fcn.0040553c
lea eax, [ebp - 0x1f0]
mov edx, 7
call fcn.00404e2c
lea eax, [ebp - 0x1d4]
mov edx, 2
call fcn.0040553c
lea eax, [ebp - 0x1cc]
mov edx, 9
call fcn.00404e2c
lea eax, [ebp - 0x1a8]
mov edx, 0xf
call fcn.0040553c
lea eax, [ebp - 0x16c]
mov edx, 3
call fcn.00404e2c
lea eax, [ebp - 0x160]
mov edx, 4
call fcn.0040553c
lea eax, [ebp - 0x150]
mov edx, 3
call fcn.00404e2c
lea eax, [ebp - 0x144]
mov edx, 7
call fcn.0040553c
lea eax, [ebp - 0x24]
call fcn.00404e08
lea eax, [ebp - 0x1c]
mov edx, 2
call fcn.00404e2c
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.00404e2c
lea eax, [ebp + 8]
call fcn.00405524
ret