Function at 0x40948d
Capabilities:
64-bit execution via heavens gate
Contain obfuscated stackstrings
Parse pe header

Disassembly:
mov eax, 0x453631
call fcn.004534f4
push ecx
mov eax, 0x145c
call fcn.00453320
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov edi, ecx
mov dword [ebp - 0x15c], edi
xor ebx, ebx
mov dword [ebp - 4], ebx
cmp dword [edi + 0x18], ebx
je 0x4094c1
xor eax, eax
jmp 0x40a6fb
mov al, 0x11
mov dword [ebp - 0xb3], 0x43744a11
mov dword [ebp - 0xaf], 0x66536562
mov dword [ebp - 0xab], 0x75516562
mov word [ebp - 0xa7], 0x73
mov edx, ebx
mov dword [ebp - 0x250], edx
cmp edx, 0xc
jae 0x409526
movsx ecx, al
and ecx, 0x8000000f
jns 0x409507
dec ecx
or ecx, 0xfffffff0
inc ecx
mov al, byte [ebp + edx - 0xb2]
sub al, cl
mov byte [ebp + edx - 0xb2], al
inc edx
mov dword [ebp - 0x250], edx
mov al, byte [ebp - 0xb3]
jmp 0x4094f2
mov byte [ebp - 0xa6], bl
lea esi, [ebp - 0xb2]
mov dl, 0x15
mov dword [ebp - 0xc1], 0x67705e15
mov dword [ebp - 0xbd], 0x2679707b
mov dword [ebp - 0xb9], 0x79713b27
mov word [ebp - 0xb5], 0x79
mov ecx, ebx
mov dword [ebp - 0x254], ecx
cmp ecx, 0xc
jae 0x409587
mov al, byte [ebp + ecx - 0xc0]
xor al, dl
mov byte [ebp + ecx - 0xc0], al
inc ecx
mov dword [ebp - 0x254], ecx
mov dl, byte [ebp - 0xc1]
jmp 0x409563
mov byte [ebp - 0xb4], bl
mov edx, esi
lea ecx, [ebp - 0xc0]
call fcn.0040c457
push 4
push dword [edi + 0x10]
call eax
test eax, eax
jne 0x409752
mov esi, dword [edi + 0x10]
test esi, esi
je 0x40974b
mov eax, 0x5a4d
cmp word [esi], ax
jne 0x40974b
mov dl, 0x3d
mov dword [ebp - 0x132], 0x5c50743d
mov dword [ebp - 0x12e], 0x4973585a
mov dword [ebp - 0x12a], 0x595c5875
mov word [ebp - 0x126], 0x4f58
mov byte [ebp - 0x124], bl
mov ecx, ebx
mov dword [ebp - 0x258], ecx
cmp ecx, 0xd
jae 0x40961d
mov al, byte [ebp + ecx - 0x131]
xor al, dl
mov byte [ebp + ecx - 0x131], al
inc ecx
mov dword [ebp - 0x258], ecx
mov dl, byte [ebp - 0x132]
jmp 0x4095f9
mov byte [ebp - 0x124], bl
mov al, 0x37
mov dword [ebp - 0x7d], 0x6e694b37
mov dword [ebp - 0x79], 0x77736c6f
mov dword [ebp - 0x75], 0x73736b35
mov byte [ebp - 0x71], bl
mov edx, ebx
mov dword [ebp - 0x25c], edx
cmp edx, 0xb
jae 0x409670
movsx ecx, al
and ecx, 0x8000000f
jns 0x40965a
dec ecx
or ecx, 0xfffffff0
inc ecx
mov al, byte [ebp + edx - 0x7c]
sub al, cl
mov byte [ebp + edx - 0x7c], al
inc edx
mov dword [ebp - 0x25c], edx
mov al, byte [ebp - 0x7d]
jmp 0x409645
mov byte [ebp - 0x71], bl
lea edx, [ebp - 0x131]
lea ecx, [ebp - 0x7c]
call fcn.0040c457
push esi
call eax
mov edx, eax
mov dword [ebp - 0x18], edx
test edx, edx
je 0x40974b
cmp dword [edx], 0x4550
jne 0x40974b
movzx esi, word [edx + 0x14]
add esi, 0x18
add esi, edx
mov dword [ebp - 0x164], esi
mov eax, dword [edi + 0x140]
mov dword [edi + 0x144], eax
mov ecx, ebx
mov dword [ebp - 0x158], ecx
movzx eax, word [edx + 6]
cmp ecx, eax
jae 0x409752
mov eax, dword [esi + 0x24]
and eax, 0xc0000000
cmp eax, 0x40000000
jne 0x40973c
mov ecx, dword [esi + 0xc]
add ecx, dword [edi + 0x10]
mov dword [ebp - 0x2c4], ecx
mov edx, dword [esi + 8]
mov dword [ebp - 0x2c0], edx
call fcn.0040c18e
mov dword [ebp - 0x2bc], eax
lea ecx, [edi + 0x140]
mov eax, dword [ecx + 4]
cmp eax, dword [ecx + 8]
je 0x409726
lea esi, [ebp - 0x2c4]
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
add dword [ecx + 4], 0xc
mov edi, dword [ebp - 0x15c]
mov esi, dword [ebp - 0x164]
jmp 0x409733
lea edx, [ebp - 0x2c4]
push edx
push eax
call fcn.0040aefc
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x158]
add esi, 0x28
mov dword [ebp - 0x164], esi
inc ecx
jmp 0x4096ba
push 2
jmp 0x40a6fa
cmp dword [edi + 0x24], ebx
je 0x4098c9
call fcn.0043e197
movaps xmm0, xmmword [0x4082a0]
movups xmmword [ebp - 0x17f], xmm0
mov dword [ebp - 0x16f], 0x5270716b
mov dword [ebp - 0x16b], 0x67657174
mov word [ebp - 0x167], 0x7575
mov byte [ebp - 0x165], bl
mov edx, ebx
mov dword [ebp - 0x260], edx
cmp edx, 0x19
jae 0x4097c5
movsx ecx, byte [ebp - 0x17f]
and ecx, 0x8000000f
jns 0x4097b2
dec ecx
or ecx, 0xfffffff0
inc ecx
mov al, byte [ebp + edx - 0x17e]
sub al, cl
mov byte [ebp + edx - 0x17e], al
inc edx
jmp 0x409793
mov byte [ebp - 0x165], bl
lea esi, [ebp - 0x17e]
mov al, 0x32
mov dword [ebp - 0x2d], 0x66767032
mov dword [ebp - 0x29], 0x66306e6e
mov word [ebp - 0x25], 0x6e6e
mov byte [ebp - 0x23], bl
mov edx, ebx
mov dword [ebp - 0x264], edx
push 9
pop ecx
cmp edx, ecx
jae 0x40981f
movsx ecx, al
and ecx, 0x8000000f
jns 0x409809
dec ecx
or ecx, 0xfffffff0
inc ecx
mov al, byte [ebp + edx - 0x2c]
sub al, cl
mov byte [ebp + edx - 0x2c], al
inc edx
mov dword [ebp - 0x264], edx
mov al, byte [ebp - 0x2d]
jmp 0x4097f2
mov byte [ebp - 0x23], bl
lea ecx, [ebp - 0x2c]
call fcn.0043e466
push edx
push eax
mov ecx, esi
call fcn.0043ec6b
pop ecx
pop ecx
mov dword [edi + 0x150], eax
mov dword [edi + 0x154], edx
mov ecx, eax
or ecx, edx
jne 0x40984e
push 4
jmp 0x40a6fa
mov al, 0x1a
mov dword [ebp - 0x38], 0x6e7e781a
mov dword [ebp - 0x34], 0x6e387676
mov word [ebp - 0x30], 0x7676
mov byte [ebp - 0x2e], bl
mov edx, ebx
mov dword [ebp - 0x268], edx
cmp edx, 9
jae 0x40989a
movsx ecx, al
and ecx, 0x8000000f
jns 0x409884
dec ecx
or ecx, 0xfffffff0
inc ecx
mov al, byte [ebp + edx - 0x37]
sub al, cl
mov byte [ebp + edx - 0x37], al
inc edx
mov dword [ebp - 0x268], edx
mov al, byte [ebp - 0x38]
jmp 0x40986f
mov byte [ebp - 0x2e], bl
lea ecx, [ebp - 0x37]
call fcn.0043e466
mov ecx, dword [edi + 0x150]
mov esi, dword [edi + 0x154]
sub ecx, eax
sbb esi, edx
mov dword [edi + 0x150], ecx
mov dword [edi + 0x154], esi
push 9
pop esi
jmp 0x409a25
movaps xmm0, xmmword [0x4086a0]
movups xmmword [ebp - 0x19a], xmm0
mov dword [ebp - 0x18a], 0x5d7b7c76
mov dword [ebp - 0x186], 0x72707c7f
mov word [ebp - 0x182], 0x8080
mov byte [ebp - 0x180], bl
mov edx, ebx
mov dword [ebp - 0x26c], edx
cmp edx, 0x19
jae 0x40992e
movsx ecx, byte [ebp - 0x19a]
and ecx, 0x8000000f
jns 0x40991b
dec ecx
or ecx, 0xfffffff0
inc ecx
mov al, byte [ebp + edx - 0x199]
sub al, cl
mov byte [ebp + edx - 0x199], al
inc edx
jmp 0x4098fc
mov byte [ebp - 0x180], bl
lea esi, [ebp - 0x199]
mov al, 0x73
mov dword [ebp - 0x43], 0x67777173
mov dword [ebp - 0x3f], 0x67316f6f
mov word [ebp - 0x3b], 0x6f6f
mov byte [ebp - 0x39], bl
mov edx, ebx
mov dword [ebp - 0x208], edx
push 9
pop ecx
cmp edx, ecx
jae 0x409988
movsx ecx, al
and ecx, 0x8000000f
jns 0x409972
dec ecx
or ecx, 0xfffffff0
inc ecx
mov al, byte [ebp + edx - 0x42]
sub al, cl
mov byte [ebp + edx - 0x42], al
inc edx
mov dword [ebp - 0x208], edx
mov al, byte [ebp - 0x43]
jmp 0x40995b
mov byte [ebp - 0x39], bl
lea ecx, [ebp - 0x42]
call fcn.0040c292
mov edx, esi
mov ecx, eax
call fcn.0040c2e1
mov dword [edi + 0x150], eax
mov dword [edi + 0x154], ebx
or eax, ebx
je 0x409847
mov al, 0x34
mov dword [ebp - 0x4e], 0x68787234
mov dword [ebp - 0x4a], 0x68327070
mov word [ebp - 0x46], 0x7070
mov byte [ebp - 0x44], bl
mov edx, ebx
mov dword [ebp - 0x270], edx
push 9
pop esi
cmp edx, esi
jae 0x4099fe
movsx ecx, al
and ecx, 0x8000000f
jns 0x4099e8
dec ecx
or ecx, 0xfffffff0
inc ecx
mov al, byte [ebp + edx - 0x4d]
sub al, cl
mov byte [ebp + edx - 0x4d], al
inc edx
mov dword [ebp - 0x270], edx
mov al, byte [ebp - 0x4e]
jmp 0x4099d4
mov byte [ebp - 0x44], bl
lea ecx, [ebp - 0x4d]
call fcn.0040c292
mov ecx, dword [edi + 0x150]
mov edx, dword [edi + 0x154]
sub ecx, eax
sbb edx, ebx
mov dword [edi + 0x150], ecx
mov dword [edi + 0x154], edx
cmp dword [edi + 0x24], ebx
je 0x409b95
mov dword [ebp - 0x18], 0x105a
mov esi, dword [ebp - 0x18]
xor esi, 0x5a
mov dword [ebp - 0x278], esi
mov al, 4
mov dword [ebp - 0x59], 0x68787204
mov dword [ebp - 0x55], 0x68327070
mov word [ebp - 0x51], 0x7070
mov byte [ebp - 0x4f], bl
mov edx, ebx
mov dword [ebp - 0x274], edx
cmp edx, 9
jae 0x409a8d
movsx ecx, al
and ecx, 0x8000000f
jns 0x409a77
dec ecx
or ecx, 0xfffffff0
inc ecx
mov al, byte [ebp + edx - 0x58]
sub al, cl
mov byte [ebp + edx - 0x58], al
inc edx
mov dword [ebp - 0x274], edx
mov al, byte [ebp - 0x59]
jmp 0x409a62
mov byte [ebp - 0x4f], bl
lea ecx, [ebp - 0x58]
call fcn.0043e466
lea ecx, [ebp - 0x146c]
mov dword [ebp - 0x18], ecx
cmp eax, ebx
jne 0x409aa9
cmp edx, ebx
je 0x409b0e
test esi, esi
je 0x409b0e
mov dword [ebp - 0x2ec], eax
mov dword [ebp - 0x2e8], edx
push 0x33
call fcn.00409ac0
mov ecx, 0x5a4d
cmp word [ebp - 0x146c], cx
je 0x409b23
push 6
jmp 0x40a6fa
lea esi, [ebp - 0x146c]
add esi, dword [ebp - 0x1430]
cmp dword [esi], 0x4550
jne 0x409b1c
movzx eax, word [esi + 0x14]
lea ecx, [esi + 0x18]
add ecx, eax
mov edx, ebx
mov dword [ebp - 0x27c], ecx
mov dword [ebp - 0x280], edx
movzx eax, word [esi + 6]
cmp edx, eax
jae 0x409c4d
mov eax, dword [edi + 0x150]
cmp ebx, dword [edi + 0x154]
ja 0x409b8f
jb 0x409b6f
cmp dword [ecx + 0xc], eax
ja 0x409b8f
mov eax, dword [ecx + 8]
add eax, dword [ecx + 0xc]
cmp dword [edi + 0x154], ebx
jb 0x409c4d
ja 0x409b8f
cmp dword [edi + 0x150], eax
jbe 0x409c4d
add ecx, 0x28
inc edx
jmp 0x409b42
push 0x4b
pop edx
mov byte [ebp - 0x64], dl
mov dword [ebp - 0x63], 0x272f3f25
mov dword [ebp - 0x5f], 0x272f6527
mov word [ebp - 0x5b], 0x27
mov ecx, ebx
mov dword [ebp - 0x284], ecx
cmp ecx, esi
jae 0x409bd1
mov al, byte [ebp + ecx - 0x63]
xor al, dl
mov byte [ebp + ecx - 0x63], al
inc ecx
mov dword [ebp - 0x284], ecx
mov dl, byte [ebp - 0x64]
jmp 0x409bb7
mov byte [ebp - 0x5a], bl
lea ecx, [ebp - 0x63]
call fcn.0040c292
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x409b1c
mov edx, dword [eax + 0x3c]
add edx, eax
cmp dword [edx], 0x4550
jne 0x409b1c
movzx eax, word [edx + 0x14]
lea ecx, [edx + 0x18]
add ecx, eax
mov esi, ebx
mov dword [ebp - 0x288], ecx
mov dword [ebp - 0x28c], esi
movzx eax, word [edx + 6]
cmp esi, eax
jae 0x409c4d
mov eax, dword [edi + 0x150]
cmp ebx, dword [edi + 0x154]
ja 0x409c47
jb 0x409c2f
cmp dword [ecx + 0xc], eax
ja 0x409c47
mov eax, dword [ecx + 8]
add eax, dword [ecx + 0xc]
cmp dword [edi + 0x154], ebx
jb 0x409c4d
ja 0x409c47
cmp dword [edi + 0x150], eax
jbe 0x409c4d
add ecx, 0x28
inc esi
jmp 0x409c06
mov esi, dword [ecx + 0x14]
sub esi, dword [ecx + 0xc]
add esi, dword [edi + 0x150]
test esi, esi
je 0x409b1c
push 0x104
push ebx
lea eax, [ebp - 0x46c]
push eax
call fcn.00445a50
add esp, 0xc
movaps xmm0, xmmword [0x408540]
movups xmmword [ebp - 0x1af], xmm0
mov dword [ebp - 0x19f], 0x49817a77
mov byte [ebp - 0x19b], bl
mov edx, ebx
mov dword [ebp - 0x290], edx
cmp edx, 0x13
jae 0x409cc8
movsx ecx, byte [ebp - 0x1af]
and ecx, 0x8000000f
jns 0x409cb5
dec ecx
or ecx, 0xfffffff0
inc ecx
mov al, byte [ebp + edx - 0x1ae]
sub al, cl
mov byte [ebp + edx - 0x1ae], al
inc edx
jmp 0x409c96
mov byte [ebp - 0x19b], bl
mov dl, 0x3b
mov word [ebp - 0xcf], 0x703b
push 0x5e
pop eax
mov byte [ebp - 0xcd], al
mov word [ebp - 0xcc], 0x5549
mov byte [ebp - 0xca], al
mov dword [ebp - 0xc9], 0x15090857
mov dword [ebp - 0xc5], 0x57575f
mov ecx, ebx
mov dword [ebp - 0x294], ecx
cmp ecx, 0xc
jae 0x409d31
mov al, byte [ebp + ecx - 0xce]
xor al, dl
mov byte [ebp + ecx - 0xce], al
inc ecx
mov dword [ebp - 0x294], ecx
mov dl, byte [ebp - 0xcf]
jmp 0x409d0d
mov byte [ebp - 0xc2], bl
lea edx, [ebp - 0x1ae]
lea ecx, [ebp - 0xce]
call fcn.0040c457
push 0x104
lea ecx, [ebp - 0x46c]
push ecx
call eax
mov dl, 0x75
mov dword [ebp - 0x70], 0x11b2975
push 0x11
pop eax
mov byte [ebp - 0x6c], al
mov word [ebp - 0x6b], 0x1919
mov byte [ebp - 0x69], 0x5b
mov byte [ebp - 0x68], al
mov word [ebp - 0x67], 0x1919
mov byte [ebp - 0x65], bl
mov ecx, ebx
mov dword [ebp - 0x29c], ecx
cmp ecx, 0xa
jae 0x409d9e
mov al, byte [ebp + ecx - 0x6f]
xor al, dl
mov byte [ebp + ecx - 0x6f], al
inc ecx
mov dword [ebp - 0x29c], ecx
mov dl, byte [ebp - 0x70]
jmp 0x409d83
mov byte [ebp - 0x65], bl
lea eax, [ebp - 0x6f]
push eax
lea eax, [ebp - 0x46c]
push eax
call fcn.004486d0
pop ecx
pop ecx
cmp dword [edi + 0x2c], ebx
je 0x409dc3
lea ecx, [ebp - 0x1c4]
call fcn.00408f37
mov al, 0x4e
mov dword [ebp - 0x8a], 0x7380514e
mov dword [ebp - 0x86], 0x5473826f
mov dword [ebp - 0x82], 0x4f737a77
mov byte [ebp - 0x7e], bl
mov edx, ebx
mov dword [ebp - 0x2a0], edx
cmp edx, 0xb
jae 0x409e22
movsx ecx, al
and ecx, 0x8000000f
jns 0x409e03
dec ecx
or ecx, 0xfffffff0
inc ecx
mov al, byte [ebp + edx - 0x89]
sub al, cl
mov byte [ebp + edx - 0x89], al
inc edx
mov dword [ebp - 0x2a0], edx
mov al, byte [ebp - 0x8a]
jmp 0x409dee
mov byte [ebp - 0x7e], bl
mov dl, 0x24
mov dword [ebp - 0xdd], 0x56416f24
mov dword [ebp - 0xd9], 0x1748414a
mov dword [ebp - 0xd5], 0x48400a16
mov word [ebp - 0xd1], 0x48
mov ecx, ebx
mov dword [ebp - 0x2a4], ecx
cmp ecx, 0xc
jae 0x409e7a
mov al, byte [ebp + ecx - 0xdc]
xor al, dl
mov byte [ebp + ecx - 0xdc], al
inc ecx
mov dword [ebp - 0x2a4], ecx
mov dl, byte [ebp - 0xdd]
jmp 0x409e56
mov byte [ebp - 0xd0], bl
lea edx, [ebp - 0x89]
lea ecx, [ebp - 0xdc]
call fcn.0040c457
push ebx
push 0x80
push 3
push ebx
push 1
push 0x80000000
lea ecx, [ebp - 0x46c]
push ecx
call eax
mov dword [ebp - 0x18], eax
cmp eax, 0xffffffff
jne 0x409eb9
push 3
jmp 0x40a6fa
movaps xmm0, xmmword [0x407280]
movups xmmword [ebp - 0x2d4], xmm0
mov edx, ebx
mov dword [ebp - 0x2a8], edx
cmp edx, 0xe
jae 0x409efb
movsx ecx, byte [ebp - 0x2d4]
and ecx, 0x8000000f
jns 0x409ee8
dec ecx
or ecx, 0xfffffff0
inc ecx
mov al, byte [ebp + edx - 0x2d3]
sub al, cl
mov byte [ebp + edx - 0x2d3], al
inc edx
jmp 0x409ec9
mov byte [ebp - 0x2c5], bl
push 0x5e
pop edx
mov byte [ebp - 0xeb], dl
mov dword [ebp - 0xea], 0x302c3b15
mov dword [ebp - 0xe6], 0x6c6d323b
mov dword [ebp - 0xe2], 0x32323a70
mov byte [ebp - 0xde], bl
mov ecx, ebx
mov dword [ebp - 0x2ac], ecx
cmp ecx, 0xc
jae 0x409f5a
mov al, byte [ebp + ecx - 0xea]
xor al, dl
mov byte [ebp + ecx - 0xea], al
inc ecx
mov dword [ebp - 0x2ac], ecx
mov dl, byte [ebp - 0xeb]
jmp 0x409f36
mov byte [ebp - 0xde], bl
lea edx, [ebp - 0x2d3]
lea ecx, [ebp - 0xea]
call fcn.0040c457
push 1
push ebx
push esi
push dword [ebp - 0x18]
call eax
push 0x5f
pop edx
mov byte [ebp - 0x22], dl
mov dword [ebp - 0x21], 0x3b3e3a0d
mov dword [ebp - 0x1d], 0x3a333619
mov byte [ebp - 0x19], bl
mov ecx, ebx
mov dword [ebp - 0x2b0], ecx
cmp ecx, 8
jae 0x409fb4
mov al, byte [ebp + ecx - 0x21]
xor al, dl
mov byte [ebp + ecx - 0x21], al
inc ecx
mov dword [ebp - 0x2b0], ecx
mov dl, byte [ebp - 0x22]
jmp 0x409f99
mov byte [ebp - 0x19], bl
lea esi, [ebp - 0x21]
push 9
pop eax
mov byte [ebp - 0xf9], al
mov dword [ebp - 0xf8], 0x777b6e54
mov dword [ebp - 0xf4], 0x3b3c756e
mov dword [ebp - 0xf0], 0x75756d37
mov byte [ebp - 0xec], bl
mov edx, ebx
mov dword [ebp - 0x2b4], edx
cmp edx, 0xc
jae 0x40a023
movsx ecx, al
and ecx, 0x8000000f
jns 0x40a004
dec ecx
or ecx, 0xfffffff0
inc ecx
mov al, byte [ebp + edx - 0xf8]
sub al, cl
mov byte [ebp + edx - 0xf8], al
inc edx
mov dword [ebp - 0x2b4], edx
mov al, byte [ebp - 0xf9]
jmp 0x409fef
mov byte [ebp - 0xec], bl
mov edx, esi
lea ecx, [ebp - 0xf8]
call fcn.0040c457
mov dword [ebp - 0x2b8], 0x582
mov ecx, dword [ebp - 0x2b8]
xor ecx, 0x5e6
push ebx
lea edx, [ebp - 0x2f0]
push edx
push ecx
lea ecx, [ebp - 0x364]
push ecx
push dword [ebp - 0x18]
call eax
mov dl, 0x45
mov dword [ebp - 0x97], 0x2a290645
mov dword [ebp - 0x93], 0x240d2036
mov dword [ebp - 0x8f], 0x2029212b
mov byte [ebp - 0x8b], bl
mov ecx, ebx
mov dword [ebp - 0x1b4], ecx
cmp ecx, 0xb
jae 0x40a0b3
mov al, byte [ebp + ecx - 0x96]
xor al, dl
mov byte [ebp + ecx - 0x96], al
inc ecx
mov dword [ebp - 0x1b4], ecx
mov dl, byte [ebp - 0x97]
jmp 0x40a08f
mov byte [ebp - 0x8b], bl
lea esi, [ebp - 0x96]
push 0x11
pop edx
mov byte [ebp - 0xa5], dl
mov dword [ebp - 0xa4], 0x7f63745a
mov dword [ebp - 0xa0], 0x23227d74
mov dword [ebp - 0x9c], 0x7d7d753f
mov byte [ebp - 0x98], bl
mov ecx, ebx
mov dword [ebp - 0x1b8], ecx
cmp ecx, 0xc
jae 0x40a118
mov al, byte [ebp + ecx - 0xa4]
xor al, dl
mov byte [ebp + ecx - 0xa4], al
inc ecx
mov dword [ebp - 0x1b8], ecx
mov dl, byte [ebp - 0xa5]
jmp 0x40a0f4
mov byte [ebp - 0x98], bl
mov edx, esi
lea ecx, [ebp - 0xa4]
call fcn.0040c457
push dword [ebp - 0x18]
call eax
lea esi, [ebp - 0x364]
mov dword [ebp - 0x160], esi
push dword [edi + 0x24]
lea edx, [ebp - 0x2fc]
mov ecx, esi
call fcn.0041441f
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1bc], 0x1f4
mov eax, dword [ebp - 0x1bc]
xor eax, 0x1f1
mov ecx, dword [ebp - 0x18]
cmp ecx, eax
jne 0x40a6e1
mov dword [ebp - 0x1c0], 0x54d
mov ecx, dword [ebp - 0x1c0]
xor ecx, 0x5f5
mov esi, dword [ebp - 0x160]
movzx eax, byte [esi]
cmp eax, ecx
jne 0x40a6dc
mov eax, dword [esi + 1]
mov dword [edi + 0x158], eax
cmp dword [edi + 0x2c], ebx
je 0x40a1af
lea ecx, [ebp - 0x1c4]
call fcn.00408f96
mov dword [ebp - 0x1c8], 0xc6
mov eax, dword [ebp - 0x1c8]
xor al, 0x7e
mov byte [ebp - 0x154], al
mov dword [ebp - 0x1cc], 0x358
mov eax, dword [ebp - 0x1cc]
xor al, 0x58
mov byte [ebp - 0x153], al
mov dword [ebp - 0x1d0], 0x7e8
mov eax, dword [ebp - 0x1d0]
xor al, 0xe8
mov byte [ebp - 0x152], al
mov dword [ebp - 0x1d4], 0x247
mov eax, dword [ebp - 0x1d4]
xor al, 0x47
mov byte [ebp - 0x151], al
mov dword [ebp - 0x1d8], 0x25f
mov eax, dword [ebp - 0x1d8]
xor al, 0x5f
mov byte [ebp - 0x150], al
mov dword [ebp - 0x1dc], 0x15f
mov eax, dword [ebp - 0x1dc]
xor al, 0xb7
mov byte [ebp - 0x14f], al
mov dword [ebp - 0x1e0], 0x11b
mov eax, dword [ebp - 0x1e0]
xor al, 0x18
mov byte [ebp - 0x14e], al
mov dword [ebp - 0x1e4], 0x566
mov eax, dword [ebp - 0x1e4]
xor al, 0x66
mov byte [ebp - 0x14d], al
mov dword [ebp - 0x1e8], 0x6b1
mov eax, dword [ebp - 0x1e8]
xor al, 0xb1
mov byte [ebp - 0x14c], al
mov dword [ebp - 0x1ec], 0x2d0
mov eax, dword [ebp - 0x1ec]
xor al, 0xd0
mov byte [ebp - 0x14b], al
mov dword [ebp - 0x1f0], 0x30f
mov eax, dword [ebp - 0x1f0]
xor al, 0xcd
mov byte [ebp - 0x14a], al
mov dword [ebp - 0x1f4], 0x507
mov eax, dword [ebp - 0x1f4]
xor al, 0x13
mov byte [ebp - 0x149], al
mov dword [ebp - 0x1f8], 0x739
mov eax, dword [ebp - 0x1f8]
xor al, 0x39
mov byte [ebp - 0x148], al
mov dword [ebp - 0x1fc], 0x1f7
mov eax, dword [ebp - 0x1fc]
xor al, 0x7c
mov byte [ebp - 0x147], al
mov dword [ebp - 0x200], 0x37a
mov eax, dword [ebp - 0x200]
xor al, 0xae
mov byte [ebp - 0x146], al
mov dword [ebp - 0x204], 0x2d2
mov eax, dword [ebp - 0x204]
xor al, 0xdd
mov byte [ebp - 0x145], al
mov dword [ebp - 0x298], 0x7d7
mov eax, dword [ebp - 0x298]
xor al, 0xe3
mov byte [ebp - 0x144], al
mov dword [ebp - 0x20c], 0x5d1
mov eax, dword [ebp - 0x20c]
xor al, 0x12
mov byte [ebp - 0x143], al
mov dword [ebp - 0x210], 0x774
mov eax, dword [ebp - 0x210]
xor al, 0xcc
mov byte [ebp - 0x140], al
mov dword [ebp - 0x214], 0x232
mov eax, dword [ebp - 0x214]
xor al, 0x32
mov byte [ebp - 0x13f], al
mov dword [ebp - 0x218], 0x55b
mov eax, dword [ebp - 0x218]
xor al, 0x5b
mov byte [ebp - 0x13e], al
mov dword [ebp - 0x21c], 0x510
mov eax, dword [ebp - 0x21c]
xor al, 0x10
mov byte [ebp - 0x13d], al
mov dword [ebp - 0x220], 0x38d
mov eax, dword [ebp - 0x220]
xor al, 0x8d
mov byte [ebp - 0x13c], al
mov dword [ebp - 0x224], 0x72
mov eax, dword [ebp - 0x224]
xor al, 0x3e
mov byte [ebp - 0x13b], al
mov dword [ebp - 0x228], 0x69f
mov eax, dword [ebp - 0x228]
xor al, 0x14
mov byte [ebp - 0x13a], al
mov dword [ebp - 0x22c], 0x505
mov eax, dword [ebp - 0x22c]
xor al, 0xd4
mov byte [ebp - 0x139], al
mov dword [ebp - 0x230], 0x5c3
mov eax, dword [ebp - 0x230]
xor al, 0xcc
mov byte [ebp - 0x138], al
mov dword [ebp - 0x234], 0x27d
mov eax, dword [ebp - 0x234]
xor al, 0x78
mov byte [ebp - 0x137], al
mov dword [ebp - 0x238], 0x165
mov eax, dword [ebp - 0x238]
xor al, 0xa6
mov byte [ebp - 0x136], al
movaps xmm0, xmmword [0x407380]
movups xmmword [ebp - 0x2e4], xmm0
mov edx, ebx
mov dword [ebp - 0x23c], edx
cmp edx, 0xe
jae 0x40a4a9
movsx ecx, byte [ebp - 0x2e4]
and ecx, 0x8000000f
jns 0x40a496
dec ecx
or ecx, 0xfffffff0
inc ecx
mov al, byte [ebp + edx - 0x2e3]
sub al, cl
mov byte [ebp + edx - 0x2e3], al
inc edx
jmp 0x40a477
mov byte [ebp - 0x2d5], bl
lea esi, [ebp - 0x2e3]
push 0x55
pop eax
mov byte [ebp - 0x107], al
mov dword [ebp - 0x106], 0x73776a50
mov dword [ebp - 0x102], 0x3738716a
mov dword [ebp - 0xfe], 0x71716933
mov byte [ebp - 0xfa], bl
mov edx, ebx
mov dword [ebp - 0x240], edx
cmp edx, 0xc
jae 0x40a51e
movsx ecx, al
and ecx, 0x8000000f
jns 0x40a4ff
dec ecx
or ecx, 0xfffffff0
inc ecx
mov al, byte [ebp + edx - 0x106]
sub al, cl
mov byte [ebp + edx - 0x106], al
inc edx
mov dword [ebp - 0x240], edx
mov al, byte [ebp - 0x107]
jmp 0x40a4ea
mov byte [ebp - 0xfa], bl
mov edx, esi
lea ecx, [ebp - 0x106]
call fcn.0040c457
push 0x40
push 0x1000
push dword [edi + 0x30]
push ebx
push 0xffffffffffffffff
call eax
mov dword [edi + 0x34], eax
test eax, eax
je 0x40a6f8
mov dl, 0x61
mov dword [ebp - 0x115], 0x15042661
mov dword [ebp - 0x111], 0xa020835
push 0x22
pop eax
mov byte [ebp - 0x10d], al
mov dword [ebp - 0x10c], 0x150f140e
mov byte [ebp - 0x108], bl
mov ecx, ebx
mov dword [ebp - 0x244], ecx
cmp ecx, 0xc
jae 0x40a5a6
mov al, byte [ebp + ecx - 0x114]
xor al, dl
mov byte [ebp + ecx - 0x114], al
inc ecx
mov dword [ebp - 0x244], ecx
mov dl, byte [ebp - 0x115]
jmp 0x40a582
mov byte [ebp - 0x108], bl
lea esi, [ebp - 0x114]
push 0x22
pop eax
mov byte [ebp - 0x123], al
mov dword [ebp - 0x122], 0x7074674d
mov dword [ebp - 0x11e], 0x34356e67
mov dword [ebp - 0x11a], 0x6e6e6630
mov byte [ebp - 0x116], bl
mov edx, ebx
mov dword [ebp - 0x248], edx
cmp edx, 0xc
jae 0x40a61b
movsx ecx, al
and ecx, 0x8000000f
jns 0x40a5fc
dec ecx
or ecx, 0xfffffff0
inc ecx
mov al, byte [ebp + edx - 0x122]
sub al, cl
mov byte [ebp + edx - 0x122], al
inc edx
mov dword [ebp - 0x248], edx
mov al, byte [ebp - 0x123]
jmp 0x40a5e7
mov byte [ebp - 0x116], bl
mov edx, esi
lea ecx, [ebp - 0x122]
call fcn.0040c457
call eax
push eax
call fcn.004486a5
pop ecx
mov esi, dword [edi + 0x34]
mov dword [ebp - 0x24c], ebx
cmp ebx, dword [edi + 0x30]
jae 0x40a650
call fcn.00448684
mov byte [ebx + esi], al
inc ebx
jmp 0x40a63a
call fcn.00448684
mov ecx, dword [edi + 0x30]
sub ecx, 0x1d
xor edx, edx
div ecx
mov edi, edx
mov ebx, dword [ebp - 0x15c]
lea esi, [ebx + 0x158]
push 4
push esi
lea eax, [ebp - 0x153]
push eax
call fcn.004454d0
add esp, 0xc
push 4
push esi
lea eax, [ebp - 0x13f]
push eax
call fcn.004454d0
add esp, 0xc
mov esi, dword [ebx + 0x34]
add esi, edi
mov dword [ebx + 0x15c], esi
push 0x12
lea eax, [ebp - 0x154]
push eax
push esi
call fcn.004454d0
add esp, 0xc
add esi, 0x12
mov dword [ebx + 0x160], esi
push 0xb
lea eax, [ebp - 0x140]
push eax
push esi
call fcn.004454d0
add esp, 0xc
mov edx, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x34]
call fcn.0040c18e
mov dword [ebx + 0x38], eax
jmp 0x4094ba
mov ecx, dword [ebp - 0x18]
jmp 0x40a6e7
mov esi, dword [ebp - 0x160]
add esi, ecx
jmp 0x40a136
push 5
pop eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret