Function at 0x40deb6
Capabilities:
Access peb ldr_data
Check os version
Encode data using xor
Get ntdll base address
Get number of processors
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x90
mov dword [esp + 0x30], 0xf0cadca4
mov dword [esp + 0x34], 0xdb82c9ca
mov word [esp + 0x38], 0xcdc2
mov byte [esp + 0x3a], 0x70
xorps xmm0, xmm0
movups xmmword [esp + 0x3b], xmm0
xor eax, eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], eax
call fcn.0046d640
mov ebx, dword [eax]
call fcn.0046d646
mov esi, dword [eax]
xor eax, eax
mov dl, byte [esp + eax + 0x30]
movzx ecx, dl
mov dword [esp + 4], ecx
mov ecx, esi
cmp ebx, eax
ja 0x40e1b4
lea esi, [ecx + 1]
cmp ebx, esi
jb 0x40df4f
cmp esi, ebx
je 0x40e063
lea edi, [ecx + 2]
cmp edi, ebx
je 0x40e039
lea edi, [ecx + 3]
cmp edi, ebx
je 0x40e00b
lea edi, [ecx + 5]
cmp edi, ebx
je 0x40e06c
lea edi, [ecx + 6]
cmp edi, ebx
je 0x40dfbd
cmp ecx, eax
ja 0x40e1be
lea edi, [ecx + ebx]
cmp edi, eax
jbe 0x40dfa5
lea esi, [ecx + 6]
cmp esi, ebx
je 0x40dfdf
lea esi, [ecx + 2]
cmp esi, ebx
je 0x40dfea
lea ebx, [ecx + 0x1000]
lea esi, [ecx + 0x1002]
lea edi, [ecx + 0x100c]
cmp ebx, edi
jb 0x40df8e
add ecx, 0x1004
cmp ebx, ecx
mov ecx, esi
jae 0x40df10
lea ecx, [esi - 2]
mov eax, 0
cmp ebx, edi
mov ebx, ecx
jae 0x40df03
jmp 0x40def3
cmp edi, 8
je 0x40e00b
lea esi, [ecx + 1]
mov dword [esp + 8], esi
mov esi, ebx
cmp dword [esp + 8], ebx
jne 0x40e0a5
lea edx, [eax - 0x1d7c40f7]
mov edi, dword [esp + 4]
lea ecx, [edi + eax]
add ecx, 0xe283bf09
and edx, edi
add edx, edx
sub ecx, edx
add cl, 0xc1
mov byte [esp + eax + 0x30], cl
jmp 0x40dfe2
inc ecx
mov esi, ecx
dec eax
mov ecx, esi
jmp 0x40e094
lea esi, [eax + 0x3caad0ea]
mov ebx, dword [esp + 4]
lea edx, [eax + ebx]
add edx, 0x3caad0ea
and esi, ebx
add esi, esi
sub edx, esi
add dl, 0x9a
jmp 0x40e08b
lea esi, [eax + 0xb9f3b45]
mov edi, dword [esp + 4]
lea edx, [edi + eax]
add edx, 0xb9f3b45
and esi, edi
add esi, esi
sub edx, esi
add dl, 0x1d
mov byte [esp + eax + 0x30], dl
movzx edx, dl
sub eax, edx
mov edx, ecx
not edx
add eax, edx
inc ecx
jmp 0x40e03d
mov edi, dword [esp + 4]
lea esi, [eax + 0x55e61a54]
lea edx, [eax + edi]
add edx, 0x55e61a54
and esi, edi
add esi, esi
sub edx, esi
add dl, 0xb4
mov byte [esp + eax + 0x30], dl
sub eax, ebx
inc ebx
mov dl, byte [esp + eax + 0x2e]
add eax, 0xfffffffe
movzx edx, dl
add edx, ecx
add eax, edx
jmp 0x40e094
lea esi, [eax + 0x310b95a5]
mov edx, dword [esp + 4]
and esi, edx
add edx, eax
add edx, 0x310b95a5
add esi, esi
sub edx, esi
add dl, 0x7d
add ebx, ecx
mov edi, ebx
movzx edx, dl
not edx
add eax, edx
mov ebx, edi
inc eax
mov esi, ecx
cmp eax, 0x20
jb 0x40df03
jmp 0x410280
lea esi, [ecx + 2]
cmp esi, ebx
mov esi, dword [esp + 8]
je 0x40dfe2
lea esi, [ecx + 4]
cmp esi, ebx
jne 0x40e0fc
lea esi, [eax + 0x51a1f0b]
mov ebx, dword [esp + 4]
lea edx, [eax + ebx]
add edx, 0x51a1f0b
and esi, ebx
add esi, esi
sub edx, esi
add dl, 0xb3
lea esi, [eax + 0x77117d27]
mov ebx, dword [esp + 4]
add ebx, eax
add ebx, 0x77117d27
and esi, dword [esp + 4]
add esi, esi
sub ebx, esi
add bl, dl
add bl, 0xef
mov byte [esp + eax + 0x30], bl
jmp 0x40e08b
lea esi, [ecx + 3]
cmp esi, ebx
jne 0x40e124
lea esi, [eax - 0x665822d7]
mov ebx, dword [esp + 4]
lea edx, [eax + ebx]
add edx, 0x99a7dd29
and esi, ebx
add esi, esi
sub edx, esi
add dl, 0xe1
jmp 0x40e08b
lea esi, [ecx + 5]
cmp esi, ebx
jne 0x40e14c
lea esi, [eax + 0x2e359b47]
mov edi, dword [esp + 4]
lea edx, [eax + edi]
add edx, 0x2e359b47
and esi, edi
add esi, esi
sub edx, esi
add dl, 0xf
jmp 0x40e089
lea esi, [ecx + 8]
cmp esi, ebx
je 0x40e063
cmp ebx, 2
ja 0x40e181
lea esi, [eax + 0x4a46df0f]
mov edi, dword [esp + 4]
lea edx, [eax + edi]
add edx, 0x4a46df0f
and esi, edi
add esi, esi
sub edx, esi
add dl, 0x97
mov byte [esp + eax + 0x30], dl
jmp 0x40e094
lea esi, [eax + 0x2cca9e18]
mov dword [esp + 0x14], esi
mov ebx, dword [esp + 4]
lea esi, [eax + ebx]
add esi, 0x2cca9e18
mov dword [esp + 8], esi
mov esi, dword [esp + 0x14]
and esi, ebx
add esi, esi
mov ebx, dword [esp + 8]
sub ebx, esi
add dl, bl
add dl, 0x58
jmp 0x40e0d7
mov dword [esp + 0x14], 0x164bd23
jmp 0x40e1c6
mov dword [esp + 0x14], 0x15dde14
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
add eax, 0xc
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x40e1d6
mov eax, dword [esp + 4]
cmp word [eax + 0x24], 0
je 0x40e1d6
mov eax, dword [ecx + 0x3c]
mov esi, dword [eax + ecx + 0x78]
test esi, esi
je 0x40e1d6
mov edi, dword [ecx + esi + 0x18]
lea eax, [ecx + 1]
mov dword [esp + 8], eax
sub edi, 1
jb 0x40e1d6
mov eax, dword [ecx + esi + 0x20]
add eax, ecx
mov eax, dword [eax + edi*4]
mov dl, byte [ecx + eax]
test dl, dl
je 0x40e23a
add eax, dword [esp + 8]
mov ebx, 0x78215ef8
movsx edx, dl
xor edx, ebx
imul ebx, edx, 0x1000193
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40e226
jmp 0x40e23f
mov ebx, 0x78215ef8
cmp ebx, 0xdb8bc4fa
jne 0x40e208
mov eax, dword [esp + 0x14]
add eax, esp
add eax, 0x30
mov edx, dword [ecx + esi + 0x1c]
add edx, ecx
mov esi, dword [ecx + esi + 0x24]
add esi, ecx
movzx esi, word [esi + edi*2]
add ecx, dword [edx + esi*4]
push eax
call ecx
xor ecx, ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ecx
mov edi, dword [0x478524]
test edi, edi
jne 0x40e403
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [esp + 8], 0xb2fefbd4
mov dword [esp + 0x18], eax
mov dword [esp + 0xc], eax
xor eax, eax
test eax, eax
mov dword [esp + 0x10], eax
je 0x40e2ef
mov eax, dword [esp + 0xc]
mov esi, dword [eax + 0x2c]
add esi, 0xfffffff8
mov ecx, 0xe6aca28e
cmp si, 2
jb 0x40e2e3
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
movzx esi, si
shr esi, 1
add esi, esi
mov ecx, 0xe6aca28e
xor edi, edi
movsx ebx, byte [eax + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edi, 2
cmp esi, edi
jne 0x40e2d0
mov eax, dword [esp + 0x10]
cmp ecx, eax
jne 0x40e3b0
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x18]
mov eax, dword [edi + 0x3c]
mov esi, dword [edi + eax + 0x78]
test esi, esi
je 0x40e3ac
mov eax, dword [edi + eax + 0x7c]
mov dword [esp + 0x1c], eax
lea eax, [edi + esi]
mov dword [esp + 4], eax
mov eax, dword [eax + 0x18]
lea ecx, [edi + 1]
mov dword [esp + 0x14], ecx
sub eax, 1
jb 0x40e3ac
mov edx, esi
mov ecx, dword [esp + 4]
mov ecx, dword [ecx + 0x20]
add ecx, edi
mov ebx, dword [ecx + eax*4]
mov cl, byte [edi + ebx]
test cl, cl
je 0x40e359
add ebx, dword [esp + 0x14]
mov esi, 0xe6aca28e
movsx ecx, cl
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [ebx]
inc ebx
test cl, cl
jne 0x40e345
jmp 0x40e35e
mov esi, 0xe6aca28e
cmp esi, dword [esp + 8]
mov esi, edx
jne 0x40e31e
mov ecx, dword [edi + esi + 0x1c]
add ecx, edi
mov edx, dword [edi + esi + 0x24]
add edx, edi
movzx eax, word [edx + eax*2]
mov eax, dword [ecx + eax*4]
add edi, eax
cmp esi, eax
jge 0x40e3fb
mov eax, dword [esp + 4]
add eax, dword [esp + 0x1c]
cmp eax, edi
jbe 0x40e3fb
mov al, byte [edi]
mov edx, 0xe6aca28e
mov ecx, 0xe6aca28e
cmp al, 0x2e
je 0x40e3b6
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edi + 1]
inc edi
jmp 0x40e397
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
jmp 0x40e3e3
mov al, byte [edi + 1]
test al, al
je 0x40e3d7
add edi, 2
mov edx, 0xe6aca28e
movsx eax, al
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x40e3c5
mov dword [esp + 8], edx
mov eax, dword [esp + 0x18]
mov esi, dword [eax]
mov eax, ecx
mov esi, dword [esi]
xor edi, edi
cmp esi, dword [esp + 0x18]
je 0x40e3fb
mov dword [esp + 0xc], esi
cmp dword [esi + 0x18], 0
jne 0x40e29e
mov dword [0x478524], edi
xor ecx, ecx
lea eax, [esp + 0x28]
push ecx
push ecx
push 0x4757aa
push eax
call edi
test eax, eax
js 0x40e7dd
mov esi, dword [0x478528]
test esi, esi
jne 0x40e59d
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0x779e779f
xor edi, edi
mov dword [esp + 0x10], eax
mov edx, eax
test edi, edi
mov dword [esp + 0xc], edi
mov dword [esp + 0x14], edx
je 0x40e497
mov esi, dword [edx + 0x2c]
add esi, 0xfffffff8
mov edx, 0xacbf8b04
cmp si, 2
jb 0x40e487
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x30]
movzx esi, si
shr esi, 1
add esi, esi
mov edx, 0xacbf8b04
xor edi, edi
movsx ebx, byte [eax + edi]
xor ebx, edx
imul edx, ebx, 0x1000193
add edi, 2
cmp esi, edi
jne 0x40e474
mov edi, dword [esp + 0xc]
cmp edx, edi
mov edx, dword [esp + 0x14]
jne 0x40e583
mov esi, dword [edx + 0x18]
mov eax, dword [esi + 0x3c]
mov ebx, dword [esi + eax + 0x78]
test ebx, ebx
je 0x40e583
mov eax, dword [esi + eax + 0x7c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ebx
lea eax, [esi + ebx]
mov dword [esp + 4], eax
mov ebx, dword [eax + 0x18]
lea eax, [esi + 1]
mov dword [esp + 8], eax
sub ebx, 1
jb 0x40e552
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x20]
add eax, esi
mov edi, dword [eax + ebx*4]
mov al, byte [esi + edi]
test al, al
je 0x40e4ff
add edi, dword [esp + 8]
mov edx, 0xacbf8b04
movsx eax, al
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x40e4eb
jmp 0x40e504
mov edx, 0xacbf8b04
cmp edx, ecx
jne 0x40e4c6
mov edx, dword [esp + 0x18]
mov eax, dword [esi + edx + 0x1c]
add eax, esi
mov ecx, dword [esi + edx + 0x24]
add ecx, esi
movzx ecx, word [ecx + ebx*2]
mov eax, dword [eax + ecx*4]
add esi, eax
cmp edx, eax
jge 0x40e597
mov eax, dword [esp + 4]
add eax, dword [esp + 0x1c]
cmp eax, esi
jbe 0x40e597
mov al, byte [esi]
mov ecx, 0xacbf8b04
mov edi, 0xacbf8b04
cmp al, 0x2e
je 0x40e55c
movsx eax, al
xor eax, edi
imul edi, eax, 0x1000193
mov al, byte [esi + 1]
inc esi
jmp 0x40e53d
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
jmp 0x40e583
mov al, byte [esi + 1]
test al, al
je 0x40e57d
add esi, 2
mov ecx, 0xacbf8b04
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [esi]
inc esi
test al, al
jne 0x40e56b
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
mov edx, dword [edx]
xor esi, esi
cmp edx, dword [esp + 0x10]
je 0x40e597
cmp dword [edx + 0x18], 0
jne 0x40e442
mov dword [0x478528], esi
push 0
push 0x20
push str.ChainingModeGCM
push str.ChainingMode
push dword [esp + 0x38]
call esi
test eax, eax
js 0x40eb5e
mov esi, dword [0x478530]
test esi, esi
jne 0x40e73d
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xed52157a
xor edi, edi
mov dword [esp + 0x10], eax
mov edx, eax
test edi, edi
mov dword [esp + 0xc], edi
mov dword [esp + 0x14], edx
je 0x40e637
mov esi, dword [edx + 0x2c]
add esi, 0xfffffff8
mov edx, 0x1570da45
cmp si, 2
jb 0x40e627
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x30]
movzx esi, si
shr esi, 1
add esi, esi
mov edx, 0x1570da45
xor edi, edi
movsx ebx, byte [eax + edi]
xor ebx, edx
imul edx, ebx, 0x1000193
add edi, 2
cmp esi, edi
jne 0x40e614
mov edi, dword [esp + 0xc]
cmp edx, edi
mov edx, dword [esp + 0x14]
jne 0x40e723
mov esi, dword [edx + 0x18]
mov eax, dword [esi + 0x3c]
mov ebx, dword [esi + eax + 0x78]
test ebx, ebx
je 0x40e723
mov eax, dword [esi + eax + 0x7c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ebx
lea eax, [esi + ebx]
mov dword [esp + 4], eax
mov ebx, dword [eax + 0x18]
lea eax, [esi + 1]
mov dword [esp + 8], eax
sub ebx, 1
jb 0x40e6f2
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x20]
add eax, esi
mov edi, dword [eax + ebx*4]
mov al, byte [esi + edi]
test al, al
je 0x40e69f
add edi, dword [esp + 8]
mov edx, 0x1570da45
movsx eax, al
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x40e68b
jmp 0x40e6a4
mov edx, 0x1570da45
cmp edx, ecx
jne 0x40e666
mov edx, dword [esp + 0x18]
mov eax, dword [esi + edx + 0x1c]
add eax, esi
mov ecx, dword [esi + edx + 0x24]
add ecx, esi
movzx ecx, word [ecx + ebx*2]
mov eax, dword [eax + ecx*4]
add esi, eax
cmp edx, eax
jge 0x40e737
mov eax, dword [esp + 4]
add eax, dword [esp + 0x1c]
cmp eax, esi
jbe 0x40e737
mov al, byte [esi]
mov ecx, 0x1570da45
mov edi, 0x1570da45
cmp al, 0x2e
je 0x40e6fc
movsx eax, al
xor eax, edi
imul edi, eax, 0x1000193
mov al, byte [esi + 1]
inc esi
jmp 0x40e6dd
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
jmp 0x40e723
mov al, byte [esi + 1]
test al, al
je 0x40e71d
add esi, 2
mov ecx, 0x1570da45
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [esi]
inc esi
test al, al
jne 0x40e70b
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
mov edx, dword [edx]
xor esi, esi
cmp edx, dword [esp + 0x10]
je 0x40e737
cmp dword [edx + 0x18], 0
jne 0x40e5e2
mov dword [0x478530], esi
xor eax, eax
lea ecx, [esp + 0x2c]
push eax
mov edx, dword [ebp + 0xc]
push dword [edx]
push dword [edx + 4]
push eax
push eax
push ecx
push dword [esp + 0x40]
call esi
test eax, eax
js 0x40ef17
xorps xmm0, xmm0
movups xmmword [esp + 0x60], xmm0
movups xmmword [esp + 0x50], xmm0
movups xmmword [esp + 0x40], xmm0
mov dword [esp + 0x30], 0x40
mov dword [esp + 0x34], 1
mov ecx, dword [ebp + 0x10]
cmp dword [ecx + 0x14], 0x10
mov eax, ecx
jb 0x40e78c
mov eax, dword [ecx]
mov dword [esp + 0x38], eax
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x3c], eax
mov ecx, dword [ebp + 0x14]
mov esi, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 0x10
mov eax, ecx
jb 0x40e7a7
mov eax, dword [ecx]
add eax, esi
add eax, 0xfffffff0
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], 0x10
test esi, esi
je 0x40f3ef
js 0x410347
cmp esi, 0x1000
jb 0x40f40b
push esi
call fcn.0040130b
jmp 0x40f411
xor eax, eax
mov dword [esp + 0x45], eax
mov dword [esp + 0x41], eax
xorps xmm0, xmm0
movups xmmword [esp + 0x31], xmm0
mov byte [esp + 0x30], 0xc
call fcn.0046d640
mov esi, dword [eax]
call fcn.0046d646
mov ecx, dword [eax]
xor eax, eax
cmp esi, eax
ja 0x40ef0d
mov bl, byte [esp + eax + 0x30]
movzx edx, bl
lea edi, [ecx + 1]
cmp esi, edi
jae 0x40e84e
cmp ecx, eax
ja 0x40f401
mov dword [esp + 4], edx
lea edx, [ecx + 0xa]
cmp esi, edx
jae 0x40e8c4
lea edx, [esi + ecx]
cmp edx, eax
jbe 0x40e907
lea edx, [ecx + 2]
cmp esi, edx
jne 0x40e995
mov edi, ecx
jmp 0x40ea20
je 0x40e8ba
mov dword [esp + 4], edx
lea edx, [ecx + 3]
cmp esi, edx
jne 0x40e971
mov dword [esp + 8], esi
lea edx, [eax - 0x2515d8aa]
mov esi, dword [esp + 4]
lea ebx, [eax + esi]
add ebx, 0xdaea2756
and edx, esi
add edx, edx
sub ebx, edx
add bl, 0xa6
mov byte [esp + eax + 0x30], bl
not ecx
add ecx, eax
movzx eax, bl
sub ecx, eax
mov eax, ecx
mov ecx, edi
lea edx, [eax - 0x3efc528]
lea ebx, [eax + esi]
add ebx, 0xfc103ad8
and edx, esi
add edx, edx
sub ebx, edx
add bl, 0x18
mov byte [esp + eax + 0x30], bl
mov esi, dword [esp + 8]
sub eax, esi
inc esi
mov bl, byte [esp + eax + 0x2e]
add eax, 0xfffffffe
movzx edx, bl
add edx, ecx
jmp 0x40e9f0
cmp esi, edi
je 0x40e9fc
lea edx, [ecx + 2]
cmp esi, edx
je 0x40ea20
lea edx, [ecx + 5]
cmp esi, edx
jne 0x40eab8
lea edx, [eax + 0x39c5cbe]
mov edi, esi
mov esi, dword [esp + 4]
lea ebx, [eax + esi]
add ebx, 0x39c5cbe
and edx, esi
mov esi, edi
add edx, edx
sub ebx, edx
add bl, 0xce
jmp 0x40e9e9
lea edx, [ecx + 4]
cmp esi, edx
jbe 0x40e9f4
mov dword [esp + 8], esi
lea edx, [eax - 0x19ed5a06]
mov esi, dword [esp + 4]
add esi, eax
add esi, 0xe612a5fa
and edx, dword [esp + 4]
add edx, edx
sub esi, edx
mov edx, esi
add dl, 0x2a
mov dword [esp + 0x14], edx
lea edx, [ecx + 6]
mov esi, dword [esp + 8]
cmp esi, edx
jbe 0x40ea32
lea edx, [eax - 0x61cdc05c]
mov edi, esi
mov esi, dword [esp + 4]
lea ebx, [eax + esi]
add ebx, 0x9e323fa4
and edx, esi
mov esi, edi
add edx, edx
sub ebx, edx
add bl, 0x84
mov byte [esp + eax + 0x30], bl
jmp 0x40ea23
lea edx, [ecx + 5]
cmp esi, edx
mov edx, dword [esp + 4]
jne 0x40e81a
lea edi, [eax - 0x51110266]
lea ebx, [eax + edx]
add ebx, 0xaeeefd9a
and edi, edx
mov dl, 0xca
jmp 0x40e9b7
lea edx, [ecx + 8]
cmp esi, edx
jne 0x40ea67
lea edi, [eax + 0x540d6e8]
mov edx, dword [esp + 4]
lea ebx, [eax + edx]
add ebx, 0x540d6e8
and edi, edx
mov dl, 0xa8
add edi, edi
sub ebx, edi
add bl, dl
mov dword [esp + 8], ebx
lea edx, [eax - 0x6761ffae]
mov edi, dword [esp + 4]
lea ebx, [edi + eax]
add ebx, 0x989e0052
and edx, edi
add edx, edx
sub ebx, edx
add bl, byte [esp + 8]
add bl, 0xc2
mov byte [esp + eax + 0x30], bl
mov ebx, dword [esp + 8]
add esi, ecx
movzx edx, bl
not edx
add eax, edx
jmp 0x40ea23
cmp esi, edi
jne 0x40ea87
lea edx, [eax + 0x5651d94e]
mov ebx, esi
mov esi, dword [esp + 4]
lea ecx, [esi + eax]
add ecx, 0x5651d94e
and edx, esi
mov esi, ebx
add edx, edx
sub ecx, edx
add cl, 0xde
mov byte [esp + eax + 0x30], cl
dec eax
mov ecx, edi
inc eax
cmp eax, 0x19
jb 0x40e804
jmp 0x40f3de
cmp esi, edi
je 0x40e8ba
lea edx, [ecx + 2]
cmp esi, edx
jne 0x40eae8
lea edx, [eax - 0x589d244c]
mov edi, esi
mov esi, dword [esp + 4]
lea ebx, [eax + esi]
add ebx, 0xa762dbb4
and edx, esi
mov esi, edi
add edx, edx
sub ebx, edx
add bl, 0x14
jmp 0x40e9eb
cmp esi, edi
je 0x40e85f
lea edx, [ecx + 6]
mov dword [esp + 8], esi
cmp esi, edx
mov esi, dword [esp + 4]
je 0x40e890
jmp 0x40e7f4
mov dword [esp + 8], edx
lea edx, [ecx + 3]
cmp esi, edx
je 0x40e847
cmp esi, dword [esp + 8]
jne 0x40eb0b
lea edi, [eax - 0x10bcbdf6]
mov edx, dword [esp + 4]
lea ebx, [eax + edx]
add ebx, 0xef43420a
and edi, edx
mov dl, 0xba
jmp 0x40e9b7
lea edx, [ecx + 3]
cmp esi, edx
jne 0x40e831
lea edx, [eax + 0x45e883c2]
mov edi, esi
mov esi, dword [esp + 4]
lea ebx, [eax + esi]
add ebx, 0x45e883c2
and edx, esi
mov esi, edi
add edx, edx
sub ebx, edx
add bl, 0xb2
jmp 0x40e9eb
lea edx, [ecx + 5]
cmp esi, edx
jne 0x40eb4a
lea edi, [eax + 0x2bfb29bc]
mov edx, dword [esp + 4]
lea ebx, [eax + edx]
add ebx, 0x2bfb29bc
and edi, edx
mov dl, 0xdc
jmp 0x40e9b7
lea edx, [ecx + 6]
cmp esi, edx
je 0x40e8ba
mov dword [esp + 8], esi
mov dword [esp + 0xc], edx
lea edx, [eax + 0x21261382]
mov esi, dword [esp + 4]
add esi, eax
add esi, 0x21261382
and edx, dword [esp + 4]
add edx, edx
sub esi, edx
mov edx, esi
add dl, 0x72
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0xc]
jmp 0x40e93c
lea edx, [ecx + 7]
cmp esi, edx
mov ebx, dword [esp + 0x14]
je 0x40e847
jmp 0x40e968
mov esi, dword [0x47852c]
test esi, esi
jne 0x40ece2
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xf0b1bf30
xor edi, edi
mov dword [esp + 0x10], eax
mov edx, eax
test edi, edi
mov dword [esp + 0xc], edi
mov dword [esp + 0x14], edx
je 0x40ebdc
mov esi, dword [edx + 0x2c]
add esi, 0xfffffff8
mov edx, 0x8deafade
cmp si, 2
jb 0x40ebcc
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x30]
movzx esi, si
shr esi, 1
add esi, esi
mov edx, 0x8deafade
xor edi, edi
movsx ebx, byte [eax + edi]
xor ebx, edx
imul edx, ebx, 0x1000193
add edi, 2
cmp esi, edi
jne 0x40ebb9
mov edi, dword [esp + 0xc]
cmp edx, edi
mov edx, dword [esp + 0x14]
jne 0x40ecc8
mov esi, dword [edx + 0x18]
mov eax, dword [esi + 0x3c]
mov ebx, dword [esi + eax + 0x78]
test ebx, ebx
je 0x40ecc8
mov eax, dword [esi + eax + 0x7c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ebx
lea eax, [esi + ebx]
mov dword [esp + 4], eax
mov ebx, dword [eax + 0x18]
lea eax, [esi + 1]
mov dword [esp + 8], eax
sub ebx, 1
jb 0x40ec97
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x20]
add eax, esi
mov edi, dword [eax + ebx*4]
mov al, byte [esi + edi]
test al, al
je 0x40ec44
add edi, dword [esp + 8]
mov edx, 0x8deafade
movsx eax, al
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x40ec30
jmp 0x40ec49
mov edx, 0x8deafade
cmp edx, ecx
jne 0x40ec0b
mov edx, dword [esp + 0x18]
mov eax, dword [esi + edx + 0x1c]
add eax, esi
mov ecx, dword [esi + edx + 0x24]
add ecx, esi
movzx ecx, word [ecx + ebx*2]
mov eax, dword [eax + ecx*4]
add esi, eax
cmp edx, eax
jge 0x40ecdc
mov eax, dword [esp + 4]
add eax, dword [esp + 0x1c]
cmp eax, esi
jbe 0x40ecdc
mov al, byte [esi]
mov ecx, 0x8deafade
mov edi, 0x8deafade
cmp al, 0x2e
je 0x40eca1
movsx eax, al
xor eax, edi
imul edi, eax, 0x1000193
mov al, byte [esi + 1]
inc esi
jmp 0x40ec82
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
jmp 0x40ecc8
mov al, byte [esi + 1]
test al, al
je 0x40ecc2
add esi, 2
mov ecx, 0x8deafade
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [esi]
inc esi
test al, al
jne 0x40ecb0
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
mov edx, dword [edx]
xor esi, esi
cmp edx, dword [esp + 0x10]
je 0x40ecdc
cmp dword [edx + 0x18], 0
jne 0x40eb87
mov dword [0x47852c], esi
xor edi, edi
push edi
push dword [esp + 0x2c]
call esi
mov dword [esp + 0x41], edi
xorps xmm0, xmm0
movups xmmword [esp + 0x31], xmm0
mov byte [esp + 0x30], 0x30
call fcn.0046d640
mov esi, dword [eax]
call fcn.0046d646
mov ecx, dword [eax]
xor eax, eax
cmp esi, eax
ja 0x40f3e5
mov dl, byte [esp + eax + 0x30]
movzx ebx, dl
lea edi, [ecx + 1]
mov dword [esp + 4], esi
cmp esi, edi
jae 0x40ed6b
cmp ecx, eax
ja 0x410294
mov esi, dword [esp + 4]
lea edx, [esi + ecx]
cmp edx, eax
jbe 0x40ed76
lea edx, [ecx + 6]
cmp esi, edx
je 0x40ed7e
lea edx, [ecx + 4]
mov esi, dword [esp + 4]
cmp esi, edx
cmovne edi, ecx
je 0x40ed9e
lea edx, [ecx + 2]
cmp esi, edx
je 0x40ed9e
lea esi, [ecx + 9]
lea edx, [ecx + 0x11]
add ecx, 0x17
mov eax, 0
cmp esi, ecx
mov ecx, edx
jae 0x40ed0c
jmp 0x40ecfc
jne 0x40eda6
mov esi, dword [esp + 4]
jmp 0x40ee04
cmp esi, edi
jne 0x40ee0e
lea edx, [eax + 0x28a85048]
lea ecx, [eax + ebx]
add ecx, 0x28a85048
and edx, ebx
add edx, edx
sub ecx, edx
add cl, 8
mov byte [esp + eax + 0x30], cl
mov esi, dword [esp + 4]
dec eax
mov ecx, edi
jmp 0x40eec6
lea edx, [ecx + 3]
mov esi, dword [esp + 4]
cmp esi, edx
jne 0x40ee22
lea esi, [eax - 0x254c2dd8]
lea edx, [eax + ebx]
add edx, 0xdab3d228
and esi, ebx
add esi, esi
sub edx, esi
add dl, 0xe8
mov byte [esp + eax + 0x30], dl
not ecx
add ecx, eax
movzx eax, dl
sub ecx, eax
mov eax, ecx
mov ecx, edi
lea esi, [eax - 0x38c94d60]
lea edx, [eax + ebx]
add edx, 0xc736b2a0
and esi, ebx
add esi, esi
sub edx, esi
add dl, 0xa0
mov byte [esp + eax + 0x30], dl
mov esi, dword [esp + 4]
sub eax, esi
inc esi
mov dl, byte [esp + eax + 0x2e]
add eax, 0xfffffffe
movzx edx, dl
add edx, ecx
jmp 0x40eec4
mov edi, edx
lea edx, [ecx + 3]
mov esi, dword [esp + 4]
cmp esi, edx
jne 0x40ee69
mov edi, ecx
jmp 0x40ed9e
lea edx, [ecx + 5]
cmp esi, edx
jne 0x40ee8e
lea edx, [eax + 0x2a56618]
lea edi, [eax + ebx]
add edi, 0x2a56618
and edx, ebx
add edx, edx
sub edi, edx
lea esi, [eax + 0x1ae1138]
and esi, ebx
lea edx, [eax + ebx]
add edx, 0x1ae1138
mov ebx, edi
add esi, esi
sub edx, esi
add bl, 0x58
add dl, bl
add dl, 0x78
mov byte [esp + eax + 0x30], dl
mov esi, dword [esp + 4]
add esi, ecx
jmp 0x40eebf
lea edx, [ecx + 4]
cmp esi, edx
jne 0x40ee9e
lea edx, [eax - 0x67b3beb8]
lea esi, [eax + ebx]
add esi, 0x984c4148
and edx, ebx
mov ebx, esi
add edx, edx
sub ebx, edx
add bl, 8
mov esi, edi
jmp 0x40eebf
lea edx, [ecx + 7]
cmp esi, edx
jne 0x40ed26
jmp 0x40ed7e
lea edx, [ecx + 6]
cmp esi, edx
jne 0x40eed5
lea edx, [eax + 0x71520238]
lea edi, [eax + ebx]
add edi, 0x71520238
and edx, ebx
mov ebx, edi
add edx, edx
sub ebx, edx
add bl, 0x78
movzx edx, bl
not edx
add eax, edx
inc eax
cmp eax, 0x15
jb 0x40ed0c
jmp 0x40f3de
lea edx, [ecx + 2]
cmp esi, edx
je 0x40edda
lea edx, [ecx + 7]
cmp esi, edx
je 0x40ee1b
lea esi, [eax - 0x137d1f88]
lea edx, [eax + ebx]
add edx, 0xec82e078
and esi, ebx
add esi, esi
sub edx, esi
mov esi, dword [esp + 4]
add dl, 0xb8
mov byte [esp + eax + 0x30], dl
jmp 0x40eec6
mov eax, 0x7b2eda
jmp 0x4102ab
mov esi, dword [0x478534]
test esi, esi
jne 0x40f09b
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0x110f6a9
xor edi, edi
mov dword [esp + 0x10], eax
mov edx, eax
test edi, edi
mov dword [esp + 0xc], edi
mov dword [esp + 0x14], edx
je 0x40ef95
mov esi, dword [edx + 0x2c]
add esi, 0xfffffff8
mov edx, 0x93b95e5b
cmp si, 2
jb 0x40ef85
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x30]
movzx esi, si
shr esi, 1
add esi, esi
mov edx, 0x93b95e5b
xor edi, edi
movsx ebx, byte [eax + edi]
xor ebx, edx
imul edx, ebx, 0x1000193
add edi, 2
cmp esi, edi
jne 0x40ef72
mov edi, dword [esp + 0xc]
cmp edx, edi
mov edx, dword [esp + 0x14]
jne 0x40f081
mov esi, dword [edx + 0x18]
mov eax, dword [esi + 0x3c]
mov ebx, dword [esi + eax + 0x78]
test ebx, ebx
je 0x40f081
mov eax, dword [esi + eax + 0x7c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ebx
lea eax, [esi + ebx]
mov dword [esp + 4], eax
mov ebx, dword [eax + 0x18]
lea eax, [esi + 1]
mov dword [esp + 8], eax
sub ebx, 1
jb 0x40f050
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x20]
add eax, esi
mov edi, dword [eax + ebx*4]
mov al, byte [esi + edi]
test al, al
je 0x40effd
add edi, dword [esp + 8]
mov edx, 0x93b95e5b
movsx eax, al
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x40efe9
jmp 0x40f002
mov edx, 0x93b95e5b
cmp edx, ecx
jne 0x40efc4
mov edx, dword [esp + 0x18]
mov eax, dword [esi + edx + 0x1c]
add eax, esi
mov ecx, dword [esi + edx + 0x24]
add ecx, esi
movzx ecx, word [ecx + ebx*2]
mov eax, dword [eax + ecx*4]
add esi, eax
cmp edx, eax
jge 0x40f095
mov eax, dword [esp + 4]
add eax, dword [esp + 0x1c]
cmp eax, esi
jbe 0x40f095
mov al, byte [esi]
mov ecx, 0x93b95e5b
mov edi, 0x93b95e5b
cmp al, 0x2e
je 0x40f05a
movsx eax, al
xor eax, edi
imul edi, eax, 0x1000193
mov al, byte [esi + 1]
inc esi
jmp 0x40f03b
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
jmp 0x40f081
mov al, byte [esi + 1]
test al, al
je 0x40f07b
add esi, 2
mov ecx, 0x93b95e5b
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [esi]
inc esi
test al, al
jne 0x40f069
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
mov edx, dword [edx]
xor esi, esi
cmp edx, dword [esp + 0x10]
je 0x40f095
cmp dword [edx + 0x18], 0
jne 0x40ef40
mov dword [0x478534], esi
xor edi, edi
push edi
push dword [esp + 0x2c]
call esi
mov dword [esp + 0x44], edi
mov dword [esp + 0x40], edi
xorps xmm0, xmm0
movups xmmword [esp + 0x31], xmm0
mov byte [esp + 0x30], 0x66
call fcn.0046d640
mov eax, dword [eax]
mov dword [esp + 4], eax
call fcn.0046d646
mov ecx, dword [eax]
xor eax, eax
cmp dword [esp + 4], eax
ja 0x41028d
mov dl, byte [esp + eax + 0x30]
movzx esi, dl
mov dword [esp + 8], esi
lea esi, [ecx + 1]
cmp dword [esp + 4], esi
jae 0x40f14a
cmp ecx, eax
ja 0x4102a6
mov edi, dword [esp + 4]
lea ebx, [edi + ecx]
cmp ebx, eax
jbe 0x40f18a
lea edi, [ecx + 6]
cmp dword [esp + 4], edi
je 0x40f24e
lea edi, [ecx + 5]
cmp dword [esp + 4], edi
je 0x40f207
lea edi, [ecx + 4]
cmp dword [esp + 4], edi
jne 0x40f280
lea esi, [eax - 0x1f1261d6]
mov edi, dword [esp + 8]
lea edx, [eax + edi]
add edx, 0xe0ed9e2a
and esi, edi
add esi, esi
sub edx, esi
add dl, 0xda
jmp 0x40f331
jne 0x40f153
mov esi, ecx
jmp 0x40f1eb
lea edi, [ecx + 2]
cmp dword [esp + 4], edi
je 0x40f18f
lea edi, [ecx + 3]
cmp dword [esp + 4], edi
jne 0x40f20b
lea edi, [eax - 0x389b6f99]
mov esi, dword [esp + 8]
lea edx, [eax + esi]
add edx, 0xc7649067
and edi, esi
add edi, edi
sub edx, edi
add dl, 0x2f
jmp 0x40f335
cmp ebx, 4
jne 0x40f1f4
lea edi, [eax - 0x681b841b]
mov ebx, dword [esp + 8]
lea edx, [eax + ebx]
add edx, 0x97e47be5
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0xbd
mov byte [esp + eax + 0x30], dl
movzx edx, dl
not ecx
add ecx, eax
mov eax, ecx
sub eax, edx
lea edi, [eax + 0x58b6c4d4]
and edi, ebx
add ebx, eax
add ebx, 0x58b6c4d4
add edi, edi
sub ebx, edi
add bl, 0x34
mov byte [esp + eax + 0x30], bl
mov eax, dword [esp + 4]
add edx, eax
inc eax
mov dword [esp + 4], eax
sub ecx, edx
mov dl, byte [esp + ecx + 0x2e]
add ecx, 0xfffffffe
mov eax, ecx
movzx ecx, dl
add ecx, esi
add eax, ecx
jmp 0x40f26f
cmp dword [esp + 4], esi
je 0x40f24e
lea edi, [ecx + 2]
cmp dword [esp + 4], edi
jne 0x40f2c4
mov esi, ecx
jmp 0x40f26e
lea edi, [ecx + 6]
cmp dword [esp + 4], edi
jne 0x40f241
lea edi, [eax - 0x35524bdd]
mov esi, dword [esp + 8]
lea edx, [eax + esi]
add edx, 0xcaadb423
and edi, esi
add edi, edi
sub edx, edi
add dl, 0xb
mov edi, dword [esp + 4]
add edi, ecx
mov dword [esp + 4], edi
mov edi, esi
jmp 0x40f2ed
lea edi, [ecx + 9]
cmp dword [esp + 4], edi
jne 0x40f0eb
lea edx, [eax - 0x6b64a7d7]
mov edi, dword [esp + 8]
lea ecx, [eax + edi]
add ecx, 0x949b5829
and edx, edi
add edx, edx
sub ecx, edx
add cl, 0xe1
mov byte [esp + eax + 0x30], cl
dec eax
mov ecx, esi
inc eax
cmp eax, 0x18
jb 0x40f0cd
jmp 0x40f3de
lea edi, [ecx + 3]
cmp dword [esp + 4], edi
je 0x40f18f
lea esi, [ecx + 2]
cmp dword [esp + 4], esi
je 0x40f14c
lea esi, [ecx + 0x400]
lea edx, [ecx + 0x401]
add ecx, 0x405
mov eax, 0
mov dword [esp + 4], esi
cmp esi, ecx
mov ecx, edx
jae 0x40f0cd
jmp 0x40f0b9
lea edi, [ecx + 3]
cmp dword [esp + 4], edi
jne 0x40f30d
lea esi, [eax - 0x7525795]
mov edi, dword [esp + 8]
lea edx, [eax + edi]
add edx, 0xf8ada86b
and esi, edi
add esi, esi
sub edx, esi
add dl, 0x13
mov dword [esp + 4], ebx
lea esi, [eax + 0x163fea07]
and esi, edi
lea ebx, [edi + eax]
add ebx, 0x163fea07
add esi, esi
sub ebx, esi
add bl, dl
add bl, 0xcf
mov byte [esp + eax + 0x30], bl
jmp 0x40f335
lea edi, [ecx + 5]
cmp dword [esp + 4], edi
jne 0x40f341
lea esi, [eax + 0x7a523a49]
mov edi, dword [esp + 8]
lea edx, [eax + edi]
add edx, 0x7a523a49
and esi, edi
add esi, esi
sub edx, esi
inc dl
mov dword [esp + 4], ebx
movzx edx, dl
not edx
add eax, edx
jmp 0x40f271
lea edi, [ecx + 4]
cmp dword [esp + 4], edi
jne 0x40f368
lea edi, [eax - 0x40933d9]
mov esi, dword [esp + 8]
lea edx, [eax + esi]
add edx, 0xfbf6cc27
and edi, esi
add edi, edi
sub edx, edi
add dl, 0xef
jmp 0x40f335
lea edi, [ecx + 7]
cmp dword [esp + 4], edi
je 0x40f18f
lea edi, [ecx + 9]
cmp dword [esp + 4], edi
je 0x40f14c
cmp dword [esp + 4], 5
ja 0x40f3b7
cmp ecx, 8
ja 0x40f24e
lea edi, [eax - 0x3f2db711]
mov esi, dword [esp + 8]
lea edx, [eax + esi]
add edx, 0xc0d248ef
and edi, esi
add edi, edi
sub edx, edi
add dl, 0x77
mov byte [esp + eax + 0x30], dl
jmp 0x40f271
lea esi, [eax + 0x556da118]
mov edi, dword [esp + 8]
mov dword [esp + 4], ebx
lea ebx, [eax + edi]
add ebx, 0x556da118
and esi, edi
add esi, esi
sub ebx, esi
add dl, bl
add dl, 0x58
jmp 0x40f2ed
xor eax, eax
jmp 0x4102ab
mov eax, 0x171b118
jmp 0x4102ab
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], 0
jmp 0x40f42b
mov eax, 0x1551b58
jmp 0x4102ab
push esi
call fcn.004716fe
add esp, 4
add esi, eax
mov dword [esp + 0x1c], esi
push esi
mov dword [esp + 0x18], eax
push eax
call fcn.004529d8
add esp, 8
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x70], 0
mov esi, dword [0x478538]
test esi, esi
jne 0x40f5ba
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0x60c45625
xor edi, edi
mov dword [esp + 0x18], eax
mov edx, eax
test edi, edi
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], edx
je 0x40f4b1
mov esi, dword [edx + 0x2c]
add esi, 0xfffffff8
mov edx, 0x7fcefc02
cmp si, 2
jb 0x40f4a1
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
movzx esi, si
shr esi, 1
add esi, esi
mov edx, 0x7fcefc02
xor edi, edi
movsx ebx, byte [eax + edi]
xor ebx, edx
imul edx, ebx, 0x1000193
add edi, 2
cmp esi, edi
jne 0x40f48e
mov edi, dword [esp + 0x10]
cmp edx, edi
mov edx, dword [esp + 0xc]
jne 0x40f59d
mov esi, dword [edx + 0x18]
mov eax, dword [esi + 0x3c]
mov ebx, dword [esi + eax + 0x78]
test ebx, ebx
je 0x40f59d
mov eax, dword [esi + eax + 0x7c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebx
lea eax, [esi + ebx]
mov dword [esp + 4], eax
mov ebx, dword [eax + 0x18]
lea eax, [esi + 1]
mov dword [esp + 8], eax
sub ebx, 1
jb 0x40f56c
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x20]
add eax, esi
mov edi, dword [eax + ebx*4]
mov al, byte [esi + edi]
test al, al
je 0x40f519
add edi, dword [esp + 8]
mov edx, 0x7fcefc02
movsx eax, al
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x40f505
jmp 0x40f51e
mov edx, 0x7fcefc02
cmp edx, ecx
jne 0x40f4e0
mov edx, dword [esp + 0x24]
mov eax, dword [esi + edx + 0x1c]
add eax, esi
mov ecx, dword [esi + edx + 0x24]
add ecx, esi
movzx ecx, word [ecx + ebx*2]
mov eax, dword [eax + ecx*4]
add esi, eax
cmp edx, eax
jge 0x40f5b1
mov eax, dword [esp + 4]
add eax, dword [esp + 0x20]
cmp eax, esi
jbe 0x40f5b1
mov al, byte [esi]
mov ecx, 0x7fcefc02
mov edi, 0x7fcefc02
cmp al, 0x2e
je 0x40f576
movsx eax, al
xor eax, edi
imul edi, eax, 0x1000193
mov al, byte [esi + 1]
inc esi
jmp 0x40f557
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
jmp 0x40f59d
mov al, byte [esi + 1]
test al, al
je 0x40f597
add esi, 2
mov ecx, 0x7fcefc02
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [esi]
inc esi
test al, al
jne 0x40f585
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
mov edx, dword [edx]
xor esi, esi
cmp edx, dword [esp + 0x18]
je 0x40f5b1
cmp dword [edx + 0x18], 0
jne 0x40f45c
mov dword [0x478538], esi
mov ecx, dword [ebp + 0x14]
mov eax, dword [esp + 0x14]
sub dword [esp + 0x1c], eax
mov eax, dword [ecx + 0x10]
add eax, 0xfffffff0
cmp dword [ecx + 0x14], 0x10
jb 0x40f5d2
mov ebx, dword [ecx]
jmp 0x40f5d4
mov ebx, ecx
xor ecx, ecx
lea edx, [esp + 0x70]
lea edi, [esp + 0x30]
push ecx
push edx
push dword [esp + 0x24]
push dword [esp + 0x20]
push ecx
push ecx
push edi
push eax
push ebx
push dword [esp + 0x50]
call esi
test eax, eax
js 0x40f99e
mov esi, dword [0x478544]
test esi, esi
jne 0x40f77f
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xcf83fab7
xor edi, edi
mov dword [esp + 0x18], eax
mov edx, eax
test edi, edi
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], edx
je 0x40f679
mov esi, dword [edx + 0x2c]
add esi, 0xfffffff8
mov edx, 0x30b24d75
cmp si, 2
jb 0x40f669
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
movzx esi, si
shr esi, 1
add esi, esi
mov edx, 0x30b24d75
xor edi, edi
movsx ebx, byte [eax + edi]
xor ebx, edx
imul edx, ebx, 0x1000193
add edi, 2
cmp esi, edi
jne 0x40f656
mov edi, dword [esp + 0x10]
cmp edx, edi
mov edx, dword [esp + 0xc]
jne 0x40f765
mov esi, dword [edx + 0x18]
mov eax, dword [esi + 0x3c]
mov ebx, dword [esi + eax + 0x78]
test ebx, ebx
je 0x40f765
mov eax, dword [esi + eax + 0x7c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebx
lea eax, [esi + ebx]
mov dword [esp + 4], eax
mov ebx, dword [eax + 0x18]
lea eax, [esi + 1]
mov dword [esp + 8], eax
sub ebx, 1
jb 0x40f734
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x20]
add eax, esi
mov edi, dword [eax + ebx*4]
mov al, byte [esi + edi]
test al, al
je 0x40f6e1
add edi, dword [esp + 8]
mov edx, 0x30b24d75
movsx eax, al
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x40f6cd
jmp 0x40f6e6
mov edx, 0x30b24d75
cmp edx, ecx
jne 0x40f6a8
mov edx, dword [esp + 0x24]
mov eax, dword [esi + edx + 0x1c]
add eax, esi
mov ecx, dword [esi + edx + 0x24]
add ecx, esi
movzx ecx, word [ecx + ebx*2]
mov eax, dword [eax + ecx*4]
add esi, eax
cmp edx, eax
jge 0x40f779
mov eax, dword [esp + 4]
add eax, dword [esp + 0x20]
cmp eax, esi
jbe 0x40f779
mov al, byte [esi]
mov ecx, 0x30b24d75
mov edi, 0x30b24d75
cmp al, 0x2e
je 0x40f73e
movsx eax, al
xor eax, edi
imul edi, eax, 0x1000193
mov al, byte [esi + 1]
inc esi
jmp 0x40f71f
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
jmp 0x40f765
mov al, byte [esi + 1]
test al, al
je 0x40f75f
add esi, 2
mov ecx, 0x30b24d75
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [esi]
inc esi
test al, al
jne 0x40f74d
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
mov edx, dword [edx]
xor esi, esi
cmp edx, dword [esp + 0x18]
je 0x40f779
cmp dword [edx + 0x18], 0
jne 0x40f624
mov dword [0x478544], esi
push 0
push dword [esp + 0x2c]
call esi
mov esi, dword [0x478548]
test esi, esi
jne 0x40f90b
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xc4078d9f
xor edi, edi
mov dword [esp + 0x18], eax
mov edx, eax
test edi, edi
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], edx
je 0x40f805
mov esi, dword [edx + 0x2c]
add esi, 0xfffffff8
mov edx, 0xa416ed0
cmp si, 2
jb 0x40f7f5
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
movzx esi, si
shr esi, 1
add esi, esi
mov edx, 0xa416ed0
xor edi, edi
movsx ebx, byte [eax + edi]
xor ebx, edx
imul edx, ebx, 0x1000193
add edi, 2
cmp esi, edi
jne 0x40f7e2
mov edi, dword [esp + 0x10]
cmp edx, edi
mov edx, dword [esp + 0xc]
jne 0x40f8f1
mov esi, dword [edx + 0x18]
mov eax, dword [esi + 0x3c]
mov ebx, dword [esi + eax + 0x78]
test ebx, ebx
je 0x40f8f1
mov eax, dword [esi + eax + 0x7c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebx
lea eax, [esi + ebx]
mov dword [esp + 4], eax
mov ebx, dword [eax + 0x18]
lea eax, [esi + 1]
mov dword [esp + 8], eax
sub ebx, 1
jb 0x40f8c0
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x20]
add eax, esi
mov edi, dword [eax + ebx*4]
mov al, byte [esi + edi]
test al, al
je 0x40f86d
add edi, dword [esp + 8]
mov edx, 0xa416ed0
movsx eax, al
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x40f859
jmp 0x40f872
mov edx, 0xa416ed0
cmp edx, ecx
jne 0x40f834
mov edx, dword [esp + 0x24]
mov eax, dword [esi + edx + 0x1c]
add eax, esi
mov ecx, dword [esi + edx + 0x24]
add ecx, esi
movzx ecx, word [ecx + ebx*2]
mov eax, dword [eax + ecx*4]
add esi, eax
cmp edx, eax
jge 0x40f905
mov eax, dword [esp + 4]
add eax, dword [esp + 0x20]
cmp eax, esi
jbe 0x40f905
mov al, byte [esi]
mov ecx, 0xa416ed0
mov edi, 0xa416ed0
cmp al, 0x2e
je 0x40f8ca
movsx eax, al
xor eax, edi
imul edi, eax, 0x1000193
mov al, byte [esi + 1]
inc esi
jmp 0x40f8ab
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
jmp 0x40f8f1
mov al, byte [esi + 1]
test al, al
je 0x40f8eb
add esi, 2
mov ecx, 0xa416ed0
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [esi]
inc esi
test al, al
jne 0x40f8d9
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
mov edx, dword [edx]
xor esi, esi
cmp edx, dword [esp + 0x18]
je 0x40f905
cmp dword [edx + 0x18], 0
jne 0x40f7b0
mov dword [0x478548], esi
push dword [esp + 0x2c]
call esi
mov ebx, dword [esp + 0x70]
xor edi, edi
mov ecx, dword [ebp + 8]
mov dword [ecx], edi
mov dword [ecx + 0x10], edi
mov dword [ecx + 0x14], 0xf
mov byte [ecx], 0
push ebx
call fcn.0044e1c8
test ebx, ebx
mov eax, dword [esp + 0x14]
je 0x410310
mov dword [esp + 4], ebx
mov al, byte [eax + edi]
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
cmp ecx, edx
jae 0x40f96d
lea ebx, [ecx + 1]
mov dword [esi + 0x10], ebx
cmp edx, 0x10
jb 0x40f95f
mov edx, dword [ebp + 8]
mov esi, dword [edx]
mov byte [esi + ecx], al
mov byte [esi + ecx + 1], 0
mov ebx, dword [esp + 4]
jmp 0x40f990
sub esp, 0xc
mov cl, byte [esp + 0x80]
mov byte [esp + 4], cl
movsx eax, al
mov dword [esp + 8], eax
mov dword [esp], 1
mov ecx, esi
call fcn.00401434
inc edi
cmp ebx, edi
mov eax, dword [esp + 0x14]
jne 0x40f93f
jmp 0x410310
mov esi, dword [0x47853c]
test esi, esi
jne 0x40fb22
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0x2361b6a8
xor edi, edi
mov dword [esp + 0x18], eax
mov edx, eax
test edi, edi
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], edx
je 0x40fa1c
mov esi, dword [edx + 0x2c]
add esi, 0xfffffff8
mov edx, 0xdbb306f6
cmp si, 2
jb 0x40fa0c
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
movzx esi, si
shr esi, 1
add esi, esi
mov edx, 0xdbb306f6
xor edi, edi
movsx ebx, byte [eax + edi]
xor ebx, edx
imul edx, ebx, 0x1000193
add edi, 2
cmp esi, edi
jne 0x40f9f9
mov edi, dword [esp + 0x10]
cmp edx, edi
mov edx, dword [esp + 0xc]
jne 0x40fb08
mov esi, dword [edx + 0x18]
mov eax, dword [esi + 0x3c]
mov ebx, dword [esi + eax + 0x78]
test ebx, ebx
je 0x40fb08
mov eax, dword [esi + eax + 0x7c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebx
lea eax, [esi + ebx]
mov dword [esp + 4], eax
mov ebx, dword [eax + 0x18]
lea eax, [esi + 1]
mov dword [esp + 8], eax
sub ebx, 1
jb 0x40fad7
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x20]
add eax, esi
mov edi, dword [eax + ebx*4]
mov al, byte [esi + edi]
test al, al
je 0x40fa84
add edi, dword [esp + 8]
mov edx, 0xdbb306f6
movsx eax, al
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x40fa70
jmp 0x40fa89
mov edx, 0xdbb306f6
cmp edx, ecx
jne 0x40fa4b
mov edx, dword [esp + 0x24]
mov eax, dword [esi + edx + 0x1c]
add eax, esi
mov ecx, dword [esi + edx + 0x24]
add ecx, esi
movzx ecx, word [ecx + ebx*2]
mov eax, dword [eax + ecx*4]
add esi, eax
cmp edx, eax
jge 0x40fb1c
mov eax, dword [esp + 4]
add eax, dword [esp + 0x20]
cmp eax, esi
jbe 0x40fb1c
mov al, byte [esi]
mov ecx, 0xdbb306f6
mov edi, 0xdbb306f6
cmp al, 0x2e
je 0x40fae1
movsx eax, al
xor eax, edi
imul edi, eax, 0x1000193
mov al, byte [esi + 1]
inc esi
jmp 0x40fac2
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
jmp 0x40fb08
mov al, byte [esi + 1]
test al, al
je 0x40fb02
add esi, 2
mov ecx, 0xdbb306f6
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [esi]
inc esi
test al, al
jne 0x40faf0
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
mov edx, dword [edx]
xor esi, esi
cmp edx, dword [esp + 0x18]
je 0x40fb1c
cmp dword [edx + 0x18], 0
jne 0x40f9c7
mov dword [0x47853c], esi
push 0
push dword [esp + 0x2c]
call esi
mov esi, dword [0x478540]
test esi, esi
jne 0x40fcae
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, 0xa4a875dd
xor edi, edi
mov dword [esp + 0x18], eax
mov edx, eax
test edi, edi
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], edx
je 0x40fba8
mov esi, dword [edx + 0x2c]
add esi, 0xfffffff8
mov edx, 0xb4121b2
cmp si, 2
jb 0x40fb98
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
movzx esi, si
shr esi, 1
add esi, esi
mov edx, 0xb4121b2
xor edi, edi
movsx ebx, byte [eax + edi]
xor ebx, edx
imul edx, ebx, 0x1000193
add edi, 2
cmp esi, edi
jne 0x40fb85
mov edi, dword [esp + 0x10]
cmp edx, edi
mov edx, dword [esp + 0xc]
jne 0x40fc94
mov esi, dword [edx + 0x18]
mov eax, dword [esi + 0x3c]
mov ebx, dword [esi + eax + 0x78]
test ebx, ebx
je 0x40fc94
mov eax, dword [esi + eax + 0x7c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebx
lea eax, [esi + ebx]
mov dword [esp + 4], eax
mov ebx, dword [eax + 0x18]
lea eax, [esi + 1]
mov dword [esp + 8], eax
sub ebx, 1
jb 0x40fc63
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x20]
add eax, esi
mov edi, dword [eax + ebx*4]
mov al, byte [esi + edi]
test al, al
je 0x40fc10
add edi, dword [esp + 8]
mov edx, 0xb4121b2
movsx eax, al
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [edi]
inc edi
test al, al
jne 0x40fbfc
jmp 0x40fc15
mov edx, 0xb4121b2
cmp edx, ecx
jne 0x40fbd7
mov edx, dword [esp + 0x24]
mov eax, dword [esi + edx + 0x1c]
add eax, esi
mov ecx, dword [esi + edx + 0x24]
add ecx, esi
movzx ecx, word [ecx + ebx*2]
mov eax, dword [eax + ecx*4]
add esi, eax
cmp edx, eax
jge 0x40fca8
mov eax, dword [esp + 4]
add eax, dword [esp + 0x20]
cmp eax, esi
jbe 0x40fca8
mov al, byte [esi]
mov ecx, 0xb4121b2
mov edi, 0xb4121b2
cmp al, 0x2e
je 0x40fc6d
movsx eax, al
xor eax, edi
imul edi, eax, 0x1000193
mov al, byte [esi + 1]
inc esi
jmp 0x40fc4e
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
jmp 0x40fc94
mov al, byte [esi + 1]
test al, al
je 0x40fc8e
add esi, 2
mov ecx, 0xb4121b2
movsx eax, al
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [esi]
inc esi
test al, al
jne 0x40fc7c
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
mov edx, dword [edx]
xor esi, esi
cmp edx, dword [esp + 0x18]
je 0x40fca8
cmp dword [edx + 0x18], 0
jne 0x40fb53
mov dword [0x478540], esi
push dword [esp + 0x2c]
call esi
xorps xmm0, xmm0
movups xmmword [esp + 0x75], xmm0
mov dword [esp + 0x85], 0
mov byte [esp + 0x74], 0xd8
call fcn.0046d640
mov esi, dword [eax]
call fcn.0046d646
mov edi, dword [eax]
xor eax, eax
cmp esi, eax
ja 0x41029b
movzx edx, byte [esp + eax + 0x74]
lea ecx, [edi + 1]
cmp esi, ecx
jae 0x40fd83
mov dword [esp + 4], ecx
lea ecx, [eax + 0x318bbb5c]
lea ebx, [eax + edx]
add ebx, 0x318bbb5c
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x7c
cmp edi, eax
ja 0x4102db
mov dword [esp + 8], edi
add edi, 3
cmp esi, edi
jae 0x40fdd4
mov dword [esp + 0xc], esi
lea ecx, [eax + 0x10765e8c]
lea ebx, [eax + edx]
add ebx, 0x10765e8c
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x2c
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 8]
lea ecx, [esi + edi]
cmp ecx, eax
jbe 0x40fdfc
cmp esi, dword [esp + 0x10]
jne 0x40fec7
mov edi, esi
lea ecx, [eax + 0x4a0a8188]
lea ebx, [eax + edx]
add ebx, 0x4a0a8188
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x48
jmp 0x40fe51
jne 0x40fda2
lea ecx, [eax - 0x6b5ccdec]
lea ebx, [eax + edx]
add ebx, 0x94a33214
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x74
jmp 0x410123
mov dword [esp + 4], ecx
lea ecx, [edi + 3]
cmp esi, ecx
jne 0x40fe79
mov dword [esp + 0xc], esi
lea ecx, [eax + 0x5ad21f84]
lea ebx, [eax + edx]
add ebx, 0x5ad21f84
and ecx, edx
mov dword [esp + 0x10], ecx
mov byte [esp + 0x18], 0x64
jmp 0x4100be
mov ecx, dword [esp + 4]
cmp esi, ecx
jne 0x40fea1
mov edi, esi
lea ecx, [eax + 0x738dd544]
lea ebx, [eax + edx]
add ebx, 0x738dd544
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x24
jmp 0x40fe51
lea ecx, [edi + 0xa]
cmp esi, ecx
jae 0x40fef3
mov dword [esp + 0xc], esi
lea ecx, [eax + 0x318bbb5c]
lea ebx, [eax + edx]
add ebx, 0x318bbb5c
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x7c
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 4]
cmp esi, ecx
jne 0x40ff6f
mov edi, esi
lea ecx, [eax + 0x31631ba4]
lea ebx, [eax + edx]
add ebx, 0x31631ba4
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x84
lea esi, [eax - 0x10c79dfc]
lea ecx, [edx + eax]
add ecx, 0xef386204
and esi, edx
add esi, esi
sub ecx, esi
add cl, 0xe4
mov byte [esp + eax + 0x74], cl
mov esi, edi
mov edi, dword [esp + 4]
dec eax
jmp 0x410127
lea ecx, [edi + 2]
cmp esi, ecx
jne 0x40ff20
lea ecx, [eax - 0x421669c4]
lea ebx, [eax + edx]
add ebx, 0xbde9963c
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x5c
jmp 0x40ffba
cmp esi, edi
jne 0x40ff46
lea ecx, [eax + 0x39bcc2b4]
lea ebx, [eax + edx]
add ebx, 0x39bcc2b4
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x14
mov edi, dword [esp + 8]
jmp 0x40fe73
mov edi, dword [esp + 8]
lea ecx, [edi + 8]
cmp esi, ecx
jne 0x40ffc6
lea ecx, [eax - 0x52de07c0]
lea ebx, [eax + edx]
add ebx, 0xad21f840
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x40
jmp 0x40fe6f
mov ecx, dword [esp + 4]
cmp esi, ecx
jne 0x40ffeb
lea ecx, [eax + 0x20ecbd18]
lea ebx, [eax + edx]
add ebx, 0x20ecbd18
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x58
mov edi, dword [esp + 8]
jmp 0x410123
lea ecx, [edi + 4]
cmp esi, ecx
jne 0x410013
mov dword [esp + 8], edi
mov edi, esi
lea esi, [eax - 0x7be77c54]
lea ebx, [eax + edx]
add ebx, 0x841883ac
and esi, edx
mov cl, 0x4c
jmp 0x40ff8c
mov ecx, dword [esp + 8]
add ecx, 2
cmp esi, ecx
jne 0x41003b
lea ecx, [eax - 0x144fdc]
lea ebx, [eax + edx]
add ebx, 0xffebb024
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 4
jmp 0x40ffb4
cmp esi, edi
jne 0x41006e
mov edi, esi
lea esi, [eax + 0x5aa97fcc]
lea ebx, [eax + edx]
add ebx, 0x5aa97fcc
and esi, edx
mov cl, 0x6c
add esi, esi
sub ebx, esi
add bl, cl
lea ecx, [eax + 0x524fd8bc]
lea esi, [edx + eax]
add esi, 0x524fd8bc
and ecx, edx
add ecx, ecx
mov edx, esi
sub edx, ecx
add dl, bl
add dl, 0xdc
mov byte [esp + eax + 0x74], dl
mov esi, edi
mov edi, dword [esp + 8]
add esi, edi
movzx ecx, bl
not ecx
add eax, ecx
jmp 0x410127
lea ecx, [edi + 6]
cmp esi, ecx
jne 0x410099
lea ecx, [eax + 0x397fd320]
lea ebx, [eax + edx]
add ebx, 0x397fd320
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x20
jmp 0x40ffba
mov edi, dword [esp + 0x10]
cmp esi, edi
jne 0x410136
lea ecx, [eax - 0x18e45578]
lea ebx, [eax + edx]
add ebx, 0xe71baa88
and ecx, edx
mov dword [esp + 0x10], ecx
mov byte [esp + 0x18], 0x48
jmp 0x410068
lea ecx, [edi + 6]
cmp esi, ecx
jne 0x40fd10
lea ecx, [eax - 0x18d0059c]
lea ebx, [eax + edx]
add ebx, 0xe72ffa64
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x44
jmp 0x40fe73
mov ecx, dword [esp + 8]
add ecx, 7
cmp esi, ecx
mov dword [esp + 0xc], esi
jne 0x41015e
lea ecx, [eax - 0x39e5626c]
lea ebx, [eax + edx]
add ebx, 0xc61a9d94
and ecx, edx
mov dword [esp + 0x10], ecx
mov byte [esp + 0x18], 0xf4
mov edi, dword [esp + 8]
jmp 0x4100be
mov edi, dword [esp + 8]
lea ecx, [edi + 6]
cmp esi, ecx
jne 0x41018f
lea ecx, [eax - 0x7c101c0c]
lea ebx, [eax + edx]
add ebx, 0x83efe3f4
and ecx, edx
mov dword [esp + 0x10], ecx
mov byte [esp + 0x18], 0x54
jmp 0x4100be
lea ecx, [edi + 0x10]
cmp esi, ecx
jne 0x410264
lea ecx, [eax - 0x6368b628]
lea ebx, [eax + edx]
add ebx, 0x9c9749d8
and ecx, edx
mov dword [esp + 0x10], ecx
mov byte [esp + 0x18], 0x18
lea esi, [eax - 0x4a98b08c]
and esi, edx
add esi, esi
lea ecx, [edx + eax]
add ecx, 0xb5674f74
sub ecx, esi
add cl, 0xd4
mov byte [esp + eax + 0x74], cl
not edi
add edi, eax
movzx eax, cl
mov ecx, edi
sub ecx, eax
lea esi, [ecx - 0x190cf530]
and esi, edx
add edx, ecx
add edx, 0xe6f30ad0
add esi, esi
sub edx, esi
add dl, 0x50
mov byte [esp + ecx + 0x74], dl
mov ecx, dword [esp + 0x10]
add ecx, ecx
sub ebx, ecx
add bl, byte [esp + 0x18]
mov esi, dword [esp + 0xc]
add eax, esi
inc esi
sub edi, eax
movzx edx, byte [esp + edi + 0x72]
add edi, 0xfffffffe
mov eax, edi
mov edi, dword [esp + 4]
add edx, edi
add eax, edx
inc eax
cmp eax, 0x15
jb 0x40fcdc
jmp 0x4102a2
mov ecx, dword [esp + 8]
add ecx, 2
cmp esi, ecx
jne 0x4101b3
lea ecx, [eax - 0x52b56808]
lea ebx, [eax + edx]
add ebx, 0xad4a97f8
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x38
jmp 0x40ffb4
mov ecx, dword [esp + 8]
add ecx, 6
cmp esi, ecx
jne 0x40fd43
lea ecx, [eax - 0x73b674fc]
lea ebx, [eax + edx]
add ebx, 0x8c498b04
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0xe4
mov edi, dword [esp + 8]
mov esi, dword [esp + 0xc]
jmp 0x410123
lea ecx, [edi + 9]
cmp esi, ecx
jne 0x4101eb
lea ecx, [eax + 0x4a1ed164]
lea ebx, [eax + edx]
add ebx, 0x4a1ed164
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x44
jmp 0x410123
mov ecx, dword [esp + 8]
add ecx, 4
mov dword [esp + 0xc], esi
cmp esi, ecx
jne 0x40fe27
lea ecx, [eax + 0x73798568]
lea ebx, [eax + edx]
add ebx, 0x73798568
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x28
mov edi, dword [esp + 8]
mov esi, dword [esp + 0xc]
jmp 0x40fe73
lea ecx, [edi + 2]
cmp esi, ecx
jne 0x41020f
lea ecx, [eax - 0x31c8aaf0]
lea ebx, [eax + edx]
add ebx, 0xce375510
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x90
jmp 0x40ffb8
lea ecx, [edi + 7]
cmp esi, ecx
jne 0x410235
mov edi, esi
lea ecx, [eax + 0x5a952ff0]
lea ebx, [eax + edx]
add ebx, 0x5a952ff0
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, 0x70
jmp 0x40fe51
cmp edi, 3
ja 0x410243
mov byte [esp + eax + 0x74], bl
jmp 0x410127
mov edi, esi
lea ecx, [eax - 0x42535958]
lea ebx, [eax + edx]
add ebx, 0xbdaca6a8
and ecx, edx
add ecx, ecx
sub ebx, ecx
add bl, bl
add bl, 0xd0
jmp 0x40fe51
lea ebx, [eax + edx]
add ebx, 0x5a80e014
add eax, 0x5a80e014
and eax, edx
add eax, eax
sub ebx, eax
add bl, 0x74
jmp 0x40fccc
mov dword [esp + 0x14], 0
jmp 0x40e1c6
mov eax, 0xdb4983
jmp 0x4102ab
mov eax, 0x16ed0a0
jmp 0x4102ab
mov eax, 0x12d9d2c
jmp 0x4102e0
xor eax, eax
jmp 0x4102e0
mov eax, 0x1490094
lea esi, [esp + eax]
add esi, 0x30
xor eax, eax
mov edi, dword [ebp + 8]
mov dword [edi], eax
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ecx, edi
push eax
push esi
call fcn.00450e50
mov eax, edi
jmp 0x41033f
mov eax, 0x161e1d0
lea esi, [esp + eax]
add esi, 0x74
xor eax, eax
mov edi, dword [ebp + 8]
mov dword [edi], eax
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ecx, edi
push eax
push esi
call fcn.00450e50
mov eax, dword [esp + 0x14]
test eax, eax
mov ecx, dword [esp + 0x1c]
je 0x41033c
cmp ecx, 0x1000
jb 0x410332
mov edx, eax
mov eax, dword [eax - 4]
add edx, 0xfffffffc
sub edx, eax
cmp edx, 0x20
jae 0x41034c
add ecx, 0x23
push ecx
push eax
call fcn.00471733
add esp, 8
mov eax, dword [ebp + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.004524ac
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ebp
push ebx
push edi
push esi
sub esp, 0x44
mov esi, dword [esp + 0x58]
mov eax, dword [esp + 0x64]
cmp eax, 0xe
jg 0x4106be
xorps xmm0, xmm0
movups xmmword [esp + 0x1b], xmm0
movups xmmword [esp + 0xd], xmm0
mov byte [esp + 0xc], 0x66
call fcn.0046d640
mov edi, dword [eax]
call fcn.0046d646
mov ecx, dword [eax]
xor eax, eax
cmp edi, eax
ja 0x41078a
mov dl, byte [esp + eax + 0xc]
movzx esi, dl
mov dword [esp], esi
lea ebx, [ecx + 1]
cmp edi, ebx
jae 0x4103f5
cmp ecx, eax
ja 0x410795
lea esi, [edi + ecx]
cmp esi, eax
jbe 0x410429
lea esi, [ecx + 0x10]
cmp edi, esi
je 0x410472
lea esi, [ecx + 3]
cmp edi, esi
je 0x410581
lea esi, [ecx + 5]
cmp edi, esi
jne 0x410586
lea esi, [eax - 0x953bbf8]
mov ebx, dword [esp]
lea edx, [eax + ebx]
add edx, 0xf6ac4408
and esi, ebx
add esi, esi
sub edx, esi
add dl, 0xc8
jmp 0x4104dd
jne 0x4103fe
mov ebx, ecx
jmp 0x410593
lea esi, [ecx + 3]
cmp edi, esi
jne 0x410496
lea esi, [eax - 0x51ebf13b]
mov ebx, dword [esp]
lea edx, [eax + ebx]
add edx, 0xae140ec5
and esi, ebx
add esi, esi
sub edx, esi
add dl, 0x9d
jmp 0x4104db
lea ebp, [ecx + 6]
cmp edi, ebp
jae 0x4104e9
mov byte [esp + 4], dl
mov dword [esp + 8], edi
lea edi, [eax - 0x7bcfa191]
mov ebp, dword [esp]
lea edx, [eax + ebp]
add edx, 0x84305e6f
and edi, ebp
add edi, edi
sub edx, edi
add dl, 0xf7
mov ebp, edx
cmp esi, 6
mov dl, byte [esp + 4]
je 0x410504
mov edi, dword [esp + 8]
cmp edi, ebx
jne 0x41057a
lea edx, [eax + 0x2f75fea9]
mov esi, dword [esp]
lea ecx, [esi + eax]
add ecx, 0x2f75fea9
and edx, esi
add edx, edx
sub ecx, edx
add cl, 0x61
mov byte [esp + eax + 0xc], cl
jmp 0x410583
lea esi, [ecx + 6]
cmp edi, esi
jne 0x41055c
lea esi, [eax - 0x498b345d]
mov ebp, dword [esp]
lea edx, [eax + ebp]
add edx, 0xb674cba3
and esi, ebp
mov bl, 0x8b
add esi, esi
sub edx, esi
add dl, bl
lea esi, [eax + 0x37d6bb87]
lea ebx, [eax + ebp]
add ebx, 0x37d6bb87
and esi, ebp
add esi, esi
sub ebx, esi
add bl, dl
add bl, 0x4f
mov byte [esp + eax + 0xc], bl
add edi, ecx
movzx edx, dl
not edx
add eax, edx
jmp 0x41059c
cmp edi, ebx
je 0x4103f7
mov dword [esp + 4], ebp
lea ebp, [ecx + 2]
mov dword [esp + 8], edi
cmp edi, ebp
jne 0x4105ab
lea esi, [eax + 0x40377865]
mov ebp, dword [esp]
lea edx, [eax + ebp]
add edx, 0x40377865
and esi, ebp
add esi, esi
sub edx, esi
add dl, 0x3d
mov byte [esp + eax + 0xc], dl
movzx edx, dl
not ecx
add ecx, eax
mov esi, ecx
sub esi, edx
lea edi, [esi - 0x3b98292c]
lea eax, [esi + ebp]
add eax, 0xc467d6d4
and edi, ebp
add edi, edi
sub eax, edi
add al, 0x34
mov byte [esp + esi + 0xc], al
mov edi, dword [esp + 8]
add edx, edi
inc edi
sub ecx, edx
mov dl, byte [esp + ecx + 0xa]
add ecx, 0xfffffffe
mov eax, ecx
jmp 0x410593
lea esi, [ecx + 4]
cmp edi, esi
je 0x410581
lea esi, [ecx + 2]
cmp edi, esi
je 0x410583
lea esi, [ecx + 9]
cmp edi, esi
jne 0x4103a5
jmp 0x410472
lea esi, [ecx + 3]
cmp edi, esi
jne 0x4105da
mov ebx, ecx
dec eax
jmp 0x41059a
lea esi, [ecx + 8]
mov ebx, ecx
cmp edi, esi
jne 0x41037c
movzx ecx, dl
add ecx, ebx
add eax, ecx
mov ecx, ebx
inc eax
cmp eax, 0x1f
jb 0x41038c
jmp 0x410791
lea ebp, [ecx + 3]
mov edi, dword [esp + 8]
cmp edi, ebp
jne 0x410601
lea esi, [eax - 0x36ee4b30]
mov ebx, edi
mov edi, dword [esp]
lea edx, [eax + edi]
add edx, 0xc911b4d0
and esi, edi
add esi, esi
sub edx, esi
add dl, 0x50
mov edi, ebx
jmp 0x4104dd
lea esi, [ecx + 2]
cmp edi, esi
jne 0x410623
lea esi, [eax - 0x5695cf37]
mov ebx, dword [esp]
lea edx, [eax + ebx]
add edx, 0xa96a30c9
and esi, ebx
add esi, esi
sub edx, esi
add dl, 0x81
jmp 0x4104db
lea ebp, [ecx + 5]
cmp edi, ebp
jne 0x41064a
lea esi, [eax - 0x262cd174]
mov ebp, dword [esp]
lea edx, [eax + ebp]
add edx, 0xd9d32e8c
and esi, ebp
mov bl, 0x2c
jmp 0x4104b7
lea esi, [ecx + 5]
cmp edi, esi
jne 0x410678
lea esi, [eax - 0x4e351259]
mov ebx, dword [esp]
lea edx, [eax + ebx]
add edx, 0xb1caeda7
and esi, ebx
add esi, esi
sub edx, esi
add dl, 0x6f
jmp 0x4104dd
cmp edi, dword [esp + 4]
je 0x410472
mov byte [esp + 4], dl
lea edi, [eax - 0x280840e5]
mov ebp, dword [esp]
lea edx, [eax + ebp]
add edx, 0xd7f7bf1b
and edi, ebp
add edi, edi
sub edx, edi
add dl, 0x43
jmp 0x410457
mov ebx, edi
lea edi, [ecx + 7]
cmp ebx, edi
mov edi, ebx
je 0x4103f7
cmp edi, esi
jbe 0x4106a8
lea edx, [eax + 0x577e3f8e]
mov esi, dword [esp]
lea ebx, [eax + esi]
add ebx, 0x577e3f8e
and edx, esi
add edx, edx
sub ebx, edx
add bl, 0x1e
jmp 0x4106b5
lea edx, [ecx + 4]
cmp edi, edx
mov ebx, ebp
je 0x410581
mov byte [esp + eax + 0xc], bl
jmp 0x41059c
mov edx, dword [esp + 0x60]
mov ebx, 0xf
lea ebp, [esp + 0xc]
mov dword [ebp + 0x14], ebx
mov dword [ebp + 0x10], 0xc
movsd xmm0, qword [edx + 3]
movsd qword [ebp], xmm0
mov ecx, dword [edx + 0xb]
mov dword [ebp + 8], ecx
xor ecx, ecx
mov byte [ebp + 0xc], cl
add eax, 0xfffffff1
add edx, ebx
lea edi, [esp + 0x2c]
mov dword [edi], ecx
mov dword [edi + 0x10], ecx
mov dword [edi + 0x14], ebx
mov byte [edi], cl
mov ecx, edi
push eax
push edx
call fcn.00450e50
push edi
push ebp
push dword [esp + 0x64]
mov ebx, esi
push esi
call fcn.0040deb6
add esp, 0x10
mov eax, dword [edi + 0x14]
cmp eax, 0x10
jb 0x410750
mov ecx, dword [esp + 0x2c]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x410746
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x4107d1
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.00471733
add esp, 8
mov eax, dword [esp + 0x20]
cmp eax, 0x10
mov edi, ebx
jb 0x4107c7
mov ecx, dword [esp + 0xc]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x41077e
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x4107d1
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.00471733
add esp, 8
jmp 0x4107c7
mov eax, 0x12fd103
jmp 0x41079a
xor eax, eax
jmp 0x41079a
mov eax, 0x17f7294
lea esi, [esp + eax]
add esi, 0xc
xor eax, eax
mov edi, dword [esp + 0x58]
mov dword [edi], eax
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ecx, edi
push eax
push esi
call fcn.00450e50
mov eax, edi
add esp, 0x44
pop esi
pop edi
pop ebx
pop ebp
ret
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]