Function at 0xfe2670
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x800
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00fd1b50
mov esi, eax
cmp esi, 0
jne 0xfe2698
xor eax, eax
jmp 0xfe459e
xor edi, edi
jmp 0xfe269c
mov dword [esp], esi
call fcn.00fd1f20
cmp edi, eax
jb 0xfe26af
mov al, 1
jmp 0xfe459e
mov dword [esp], esi
mov dword [esp + 4], edi
call fcn.00fd1f30
mov dword [esp + 0x38], eax
mov al, byte [esp + 0x1a8]
mov byte [esp + 0x1c0], al
mov byte [esp + 0x44], 0xa6
mov byte [esp + 0x45], 0x34
xor eax, eax
cmp eax, 2
jae 0xfe2714
movzx edx, byte [esp + eax + 0x44]
mov ecx, eax
add ecx, 0x9f4dea6b
mov ebx, ecx
and ebx, edx
shl ebx, 1
add ecx, edx
sub ecx, ebx
mov edx, ecx
and edx, 0xec
xor edx, 0xec
and ecx, 0x13
sub ecx, edx
add cl, 0x94
mov byte [esp + eax + 0x44], cl
add eax, 1
jmp 0xfe26d9
lea eax, [esp + 0x44]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00fd1e20
cmp eax, 0
setne al
test al, 1
jne 0xfe273f
jmp 0xfe2849
mov al, byte [esp + 0x1a4]
mov byte [esp + 0x1c4], al
mov byte [esp + 0x53], 0xe9
mov byte [esp + 0x54], 0xd4
mov byte [esp + 0x55], 0x41
mov dword [esp + 0x2c], edi
xor eax, eax
jmp 0xfe2764
cmp eax, 3
jae 0xfe27b3
movzx ebx, byte [esp + eax + 0x53]
mov edx, eax
add edx, 0xe24e5ff7
mov ecx, ebx
shl ecx, 1
xor ecx, 0xffffffff
add ecx, ebx
mov edi, 0x1db1a008
sub edi, eax
or ecx, edi
or edx, ebx
and ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0x8e
xor ecx, 0xb8
sub edx, ecx
mov byte [esp + eax + 0x53], dl
mov ecx, eax
shl ecx, 1
and ecx, 2
or ecx, 0x10
xor eax, 0xfffffff1
add eax, ecx
jmp 0xfe2764
lea eax, [esp + 0x53]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00fd1e20
cmp eax, 0
mov edi, dword [esp + 0x2c]
je 0xfe2849
mov al, byte [esp + 0x1a0]
mov byte [esp + 0x1c8], al
mov byte [esp + 0x42], 0x33
mov byte [esp + 0x43], 0x97
xor eax, eax
cmp eax, 2
jae 0xfe280e
mov cl, byte [esp + eax + 0x42]
mov dl, al
add dl, 0xa6
xor dl, cl
add dl, 0xd0
mov byte [esp + eax + 0x42], dl
add eax, 1
jmp 0xfe27f2
lea eax, [esp + 0x42]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00fd1e20
cmp eax, 0
setne cl
mov al, cl
xor al, 0xff
xor cl, 0xff
and al, cl
or al, 0
xor al, 0xff
or al, 0
xor al, 0xff
jmp 0xfe2843
test al, 1
jne 0xfe2849
jmp 0xfe284e
jmp 0xfe4596
mov al, byte [esp + 0x19c]
mov byte [esp + 0x1cc], al
mov byte [esp + 0x40], 0xa7
mov byte [esp + 0x41], 0x33
xor eax, eax
cmp eax, 2
jae 0xfe288e
movzx edx, byte [esp + eax + 0x40]
mov ecx, eax
add ecx, 0x22
and ecx, edx
mov edi, eax
add edi, 0x22
or edi, edx
xor ecx, edi
add cl, 0xf0
mov byte [esp + eax + 0x40], cl
add eax, 1
jmp 0xfe2868
lea eax, [esp + 0x40]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00fd1860
mov dword [esp + 0x294], eax
mov al, byte [esp + 0x198]
mov byte [esp + 0x1d0], al
mov byte [esp + 0x50], 0x39
mov byte [esp + 0x51], 4
mov byte [esp + 0x52], 0x91
xor eax, eax
cmp eax, 3
jae 0xfe28ed
mov cl, byte [esp + eax + 0x50]
mov dl, al
add dl, 0xa7
xor dl, cl
add dl, 0xc8
mov byte [esp + eax + 0x50], dl
mov ecx, eax
xor ecx, 1
shl eax, 1
and eax, 2
add eax, ecx
jmp 0xfe28c8
lea eax, [esp + 0x50]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.00fd1960
fnstcw word [esp + 0x84]
movzx eax, word [esp + 0x84]
or eax, 0xc00
mov word [esp + 0x236], ax
fldcw word [esp + 0x236]
fistp dword [esp + 0x2a4]
fldcw word [esp + 0x84]
mov eax, dword [esp + 0x2a4]
mov dword [esp + 0xac], eax
mov al, byte [esp + 0x194]
mov byte [esp + 0x1d4], al
mov byte [esp + 0x3e], 0x2f
mov byte [esp + 0x3f], 0xcb
xor eax, eax
cmp eax, 2
jae 0xfe298e
movzx ebx, byte [esp + eax + 0x3e]
mov edx, eax
add edx, 0x1a
mov ecx, 0xe5
sub ecx, eax
mov edi, 0xe5
sub edi, eax
and ecx, edi
or edx, ebx
xor ebx, 0xffffffff
or ecx, ebx
and ecx, edx
add cl, 0x30
mov byte [esp + eax + 0x3e], cl
add eax, 1
jmp 0xfe295a
lea eax, [esp + 0x3e]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.00fd1960
fnstcw word [esp + 0x82]
movzx eax, word [esp + 0x82]
or eax, 0xc00
mov word [esp + 0x234], ax
fldcw word [esp + 0x234]
fistp dword [esp + 0x2a0]
fldcw word [esp + 0x82]
mov ebx, dword [esp + 0x2a0]
lea eax, [esp + 0x3fc]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0x400
mov eax, dword [esp + 0x294]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.00fda6d0
lea eax, [esp + 0x3fc]
lea ecx, [esp + 0x30]
lea edx, [esp + 0x24c]
xor edi, edi
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.00fdae40
test al, 1
mov edi, dword [esp + 0x2c]
jne 0xfe2a41
jmp 0xfe2a3c
jmp 0xfe4596
cmp ebx, 0
sete al
mov byte [esp + 0x49], al
test al, 1
jne 0xfe2a54
jmp 0xfe3bbe
mov al, byte [esp + 0x190]
mov byte [esp + 0x1d8], al
mov byte [esp + 0x3c], 0x79
mov byte [esp + 0x3d], 0xa
xor eax, eax
cmp eax, 2
jae 0xfe2aa4
movzx edx, byte [esp + eax + 0x3c]
mov edi, edx
xor edi, 0xffffffff
mov ecx, 0xfe
sub ecx, eax
mov ebx, 0xfe
sub ebx, eax
and ecx, ebx
or ecx, edi
mov edi, eax
add edi, 1
or edi, edx
and ecx, edi
add cl, 0xf8
mov byte [esp + eax + 0x3c], cl
add eax, 1
jmp 0xfe2a6e
lea eax, [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00fd1860
cmp eax, 0
je 0xfe2ca4
mov dword [esp + 0x258], eax
mov dword [esp], eax
call fcn.00fe45b0
xor ecx, ecx
mov dword [esp + 0x238], eax
sub ecx, eax
add ecx, 0xffffffff
xor eax, eax
sub eax, ecx
mov ecx, 2
mov dword [esp + 0x250], eax
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
mov edi, dword [esp + 0x2c]
jne 0xfe2b03
mov ecx, eax
mov dword [esp], ecx
call fcn.00fd7ff0
mov ebx, eax
xor eax, eax
mov dword [esp], ebx
mov eax, dword [esp + 0x250]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x258]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.00fda6d0
xor eax, eax
lea eax, [esp + 0x18c]
mov dword [esp], 0
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0x238]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
call dword [fcn.01019658]
sub esp, 0x18
mov cl, byte [esp + 0x188]
mov byte [esp + 0x1dc], cl
mov byte [esp + 0x66], 0x7b
mov byte [esp + 0x67], 0x59
mov byte [esp + 0x68], 0x5a
mov byte [esp + 0x69], 0x1b
xor ecx, ecx
cmp ecx, 4
jae 0xfe2bb1
mov dl, byte [esp + ecx + 0x66]
mov dh, cl
add dh, 0x98
xor dh, dl
add dh, 0x40
mov byte [esp + ecx + 0x66], dh
add ecx, 1
jmp 0xfe2b95
mov ecx, dword [esp + 0x66]
cmp eax, ecx
jne 0xfe2bdb
jmp 0xfe2bbb
mov dword [esp], ebx
call fcn.00fd8000
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.01009b60
xor ebx, ebx
mov eax, 4
jmp 0xfe2c96
mov dword [esp + 0x140], ebx
mov eax, dword [esp + 0x18c]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0xfe2bff
mov ecx, eax
mov dword [esp], ecx
call fcn.00fd7ff0
mov ebx, eax
mov eax, dword [fcn.01019658]
jmp 0xfe2c10
mov ecx, dword [esp + 0x18c]
xor edx, edx
mov dword [esp], 0
mov edx, dword [esp + 0x140]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x238]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x18c]
mov dword [esp + 0x14], ecx
call eax
sub esp, 0x18
cmp eax, 0
jge 0xfe2c81
jmp 0xfe2c55
mov dword [esp], ebx
call fcn.00fd8000
jmp 0xfe2c5f
mov eax, dword [esp + 0x140]
mov dword [esp], eax
call fcn.00fd8000
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.01009b60
mov eax, 4
jmp 0xfe2c96
jmp 0xfe2c83
mov eax, dword [esp + 0x140]
mov dword [esp], eax
call fcn.00fd8000
xor eax, eax
jmp 0xfe2c96
cmp eax, 0
je 0xfe3369
jmp 0xfe336d
call fcn.00fd87c0
mov edi, eax
and edi, 0xf
add edi, 0x10
xor ebx, ebx
lea ecx, [esp + 0x3bc]
jmp 0xfe2cbc
cmp ebx, edi
jb 0xfe2ee0
mov word [ecx], 0
mov al, byte [esp + 0x180]
mov byte [esp + 0x1e4], al
mov byte [esp + 0xb2], 0xc
mov byte [esp + 0xb3], 0x2a
mov byte [esp + 0xb4], 0x7f
mov byte [esp + 0xb5], 0x2c
mov byte [esp + 0xb6], 0x68
mov byte [esp + 0xb7], 0x2e
mov byte [esp + 0xb8], 0x72
mov byte [esp + 0xb9], 0x20
mov byte [esp + 0xba], 0x71
mov byte [esp + 0xbb], 0x22
mov byte [esp + 0xbc], 6
mov byte [esp + 0xbd], 0x24
mov byte [esp + 0xbe], 0x49
mov byte [esp + 0xbf], 0x26
mov byte [esp + 0xc0], 0x27
mov byte [esp + 0xc1], 0x38
xor eax, eax
cmp eax, 0x10
jae 0xfe2dc2
movzx edx, byte [esp + eax + 0xb2]
mov ecx, 0xe8b612de
sub ecx, eax
or ecx, edx
mov ebx, 0xe8b612de
sub ebx, eax
mov edi, 0xe8b612de
sub edi, eax
and ebx, edi
mov edi, ebx
xor edi, 0xffffffff
or edi, edx
add ebx, edi
mov edx, 0xfffffffe
sub edx, ebx
and ecx, edx
mov edx, ecx
and edx, 0x45b096f7
xor edx, 0x45b096f7
and ecx, 0xba4f6908
xor ecx, 0xffffffff
add edx, ecx
mov ecx, edx
shl ecx, 1
and ecx, 2
xor edx, 1
add edx, ecx
mov byte [esp + eax + 0xb2], dl
add eax, 1
jmp 0xfe2d59
lea eax, [esp + 0x35c]
lea ecx, [esp + 0xb2]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00fd9c80
lea ecx, [esp + 0x3bc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00fd9c80
lea ecx, [esp + 0x35c]
sub eax, ecx
sar eax, 1
xor ecx, ecx
lea edx, [esp + 0x35c]
lea ecx, [esp + 0x17c]
mov dword [esp], 0
mov dword [esp + 4], edx
mov dword [esp + 0x298], eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ecx
call dword [fcn.01019658]
sub esp, 0x18
mov dword [esp + 0x27c], eax
mov al, byte [esp + 0x178]
mov byte [esp + 0x1e8], al
mov byte [esp + 0x5e], 0x56
mov byte [esp + 0x5f], 0xb6
mov byte [esp + 0x60], 0xb7
mov byte [esp + 0x61], 0xc8
xor eax, eax
cmp eax, 4
jae 0xfe2eca
movzx edx, byte [esp + eax + 0x5e]
mov ebx, eax
add ebx, 0x2f3c635d
mov edi, eax
shl edi, 1
add edi, 0x5e78c6bb
mov ecx, ebx
sub ecx, edi
mov edi, edx
and edi, 0xa5
or edi, 0x4ba2412
and edx, 0x5a
xor edx, edi
and ecx, 0xea05dba5
and ebx, 0x15fa245a
or ebx, ecx
xor edx, ebx
mov ecx, edx
and ecx, 0xe9
xor ecx, 0x48
and edx, 0x16
xor edx, 0x16
sub edx, ecx
add dl, 1
mov byte [esp + eax + 0x5e], dl
add eax, 1
jmp 0xfe2e68
mov eax, dword [esp + 0x5e]
cmp dword [esp + 0x27c], eax
mov edi, dword [esp + 0x2c]
jne 0xfe2f50
jmp 0xfe2f68
mov dword [esp + 0x274], ecx
call fcn.00fd87c0
mov cl, byte [esp + 0x184]
mov byte [esp + 0x1e0], cl
mov byte [esp + 0x62], 0x6c
mov byte [esp + 0x63], 0x49
mov byte [esp + 0x64], 0x4a
mov byte [esp + 0x65], 0x4b
xor ecx, ecx
cmp ecx, 4
jae 0xfe2f2c
mov dl, byte [esp + ecx + 0x62]
mov dh, cl
add dh, 8
xor dh, dl
add dh, 0xc0
mov byte [esp + ecx + 0x62], dh
add ecx, 1
jmp 0xfe2f10
cdq
idiv dword [esp + 0x62]
movsx eax, byte [edx + 0x1010b8c]
mov edx, dword [esp + 0x274]
mov ecx, edx
add ecx, 2
mov word [edx], ax
add ebx, 1
jmp 0xfe2cbc
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.01009b60
xor ebx, ebx
mov eax, 4
jmp 0xfe3364
mov eax, dword [esp + 0x17c]
mov cl, byte [esp + 0x174]
mov byte [esp + 0x1ec], cl
mov byte [esp + 0x5a], 0x93
mov byte [esp + 0x5b], 0x88
mov byte [esp + 0x5c], 0x89
mov byte [esp + 0x5d], 0x8a
xor ecx, ecx
cmp ecx, 4
jae 0xfe2fb8
mov dl, byte [esp + ecx + 0x5a]
mov dh, cl
add dh, 0xef
xor dh, dl
add dh, 0x88
mov byte [esp + ecx + 0x5a], dh
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
jmp 0xfe2f93
mov ecx, dword [esp + 0x5a]
xor edx, edx
sub edx, ecx
sub eax, edx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0xfe2fd8
mov ecx, eax
mov dword [esp], ecx
call fcn.00fd7ff0
mov ebx, eax
mov eax, dword [fcn.01019658]
mov ecx, dword [esp + 0x17c]
xor edx, edx
lea edx, [esp + 0x35c]
lea edi, [esp + 0x17c]
mov dword [esp], 0
mov dword [esp + 4], edx
mov edx, dword [esp + 0x298]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edi
call eax
sub esp, 0x18
cmp eax, 0
jge 0xfe304e
mov edi, dword [esp + 0x2c]
jmp 0xfe3030
mov dword [esp], ebx
call fcn.00fd8000
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.01009b60
mov eax, 4
jmp 0xfe3364
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0xac]
cmp ecx, 0
sete al
test al, 1
jne 0xfe3068
jmp 0xfe3150
mov al, byte [esp + 0x170]
mov byte [esp + 0x1f0], al
mov byte [esp + 0xa2], 0x3a
mov byte [esp + 0xa3], 0x55
mov byte [esp + 0xa4], 0xf3
mov byte [esp + 0xa5], 0x57
mov byte [esp + 0xa6], 0xe0
mov byte [esp + 0xa7], 0x59
mov byte [esp + 0xa8], 0xff
mov byte [esp + 0xa9], 0x5b
mov byte [esp + 0xaa], 0x5c
mov byte [esp + 0xab], 0x5d
xor eax, eax
cmp eax, 0xa
jae 0xfe3138
movzx edx, byte [esp + eax + 0xa2]
mov ecx, eax
add ecx, 0xf4
and ecx, edx
xor edx, 0xffffffff
mov edi, 0xb
sub edi, eax
and edi, edx
or ecx, edi
mov dl, 0x5f
sub dl, cl
mov byte [esp + eax + 0xa2], dl
mov ecx, eax
add ecx, 1
mov edx, eax
xor edx, 0xffffffff
or edx, 1
add edx, ecx
mov ecx, edx
and ecx, 2
xor ecx, 2
mov edi, edx
and edi, 0xfffffffd
imul ecx, edi
mov edi, edx
and edi, 2
or edx, 2
imul edx, edi
mov edi, dword [esp + 0x2c]
add ecx, edx
mov edx, eax
shl edx, 1
and edx, 2
add edx, 0xffffffff
sub eax, edx
add eax, ecx
jmp 0xfe30c8
lea eax, [esp + 0xa2]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00fe49b0
jmp 0xfe3360
cmp ecx, 1
jne 0xfe326b
mov al, byte [esp + 0x16c]
mov byte [esp + 0x1f4], al
mov byte [esp + 0x98], 0
mov byte [esp + 0x99], 0xef
mov byte [esp + 0x9a], 0x74
mov byte [esp + 0x9b], 0xd1
mov byte [esp + 0x9c], 0x7e
mov byte [esp + 0x9d], 0xd3
mov byte [esp + 0x9e], pe_nt_image_headers32
mov byte [esp + 0x9f], 0xd5
mov byte [esp + 0xa0], 0xd6
mov byte [esp + 0xa1], 0xd7
xor edx, edx
cmp edx, 0xa
jae 0xfe3253
mov al, byte [esp + edx + 0x98]
mov byte [esp + 0x46], al
movzx ecx, al
mov eax, edx
add eax, 0x1e
mov dword [esp + 0x254], eax
mov dword [esp + 0x28], ebx
mov ebx, 0xadd21ae1
sub ebx, edx
or ebx, ecx
mov eax, 0xe1
sub eax, edx
and eax, ecx
mov ecx, 0xadd21ae1
sub ecx, edx
xor ebx, 0xffffffff
or eax, ebx
or ecx, eax
mov ebx, ecx
xor ebx, 0xffffffff
mov eax, ecx
and eax, 2
and ecx, 0xfffffffd
xor ecx, 0xfffffffd
imul ecx, eax
mov eax, ebx
and eax, 2
or ebx, 2
imul ebx, eax
add ebx, ecx
mov ecx, ebx
xor ecx, dword [esp + 0x254]
mov eax, 0x61
sub eax, edx
and ebx, eax
shl ebx, 1
xor ebx, 0xffffffff
add ecx, ebx
mov ebx, dword [esp + 0x28]
add cl, byte [esp + 0x46]
add cl, 0x11
mov byte [esp + edx + 0x98], cl
add edx, 1
jmp 0xfe31b9
lea eax, [esp + 0x98]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00fe49b0
jmp 0xfe3360
cmp ecx, 2
sete al
test al, 1
jne 0xfe327a
jmp 0xfe3360
mov al, byte [esp + 0x168]
mov byte [esp + 0x1f8], al
mov byte [esp + 0x8e], 0x36
mov byte [esp + 0x8f], 0x19
mov byte [esp + 0x90], 0xea
mov byte [esp + 0x91], 0x1b
mov byte [esp + 0x92], 0xef
mov byte [esp + 0x93], 0x1d
mov byte [esp + 0x94], 0x2f
mov byte [esp + 0x95], 0x1f
mov byte [esp + 0x96], 0x20
mov byte [esp + 0x97], 0x21
xor eax, eax
cmp eax, 0xa
jae 0xfe334b
movzx edx, byte [esp + eax + 0x8e]
mov ecx, eax
add ecx, 0x85720dd8
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
mov edx, ecx
and edx, 0xd46f913d
mov edi, ecx
and edi, 0xd46f913d
mov dword [esp + 0x28], ebx
mov ebx, ecx
and ebx, 2
xor ebx, 2
imul ebx, edi
mov edi, ecx
and edi, 2
or edx, 2
imul edx, edi
mov edi, dword [esp + 0x2c]
add edx, ebx
xor ecx, 0xd46f913f
mov ebx, ecx
add ebx, edx
and ecx, 1
or ebx, 1
add ebx, ecx
mov byte [esp + eax + 0x8e], bl
mov ebx, dword [esp + 0x28]
add eax, 1
jmp 0xfe32da
lea eax, [esp + 0x8e]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00fe49b0
jmp 0xfe3360
xor eax, eax
jmp 0xfe3364
cmp eax, 0
jne 0xfe336d
xor eax, eax
jmp 0xfe336d
cmp eax, 0
sete al
test al, 1
jne 0xfe337c
jmp 0xfe4596
lea eax, [esp + 0x248]
xor ecx, ecx
mov dword [esp + 0x28], ebx
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], 0x100002
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 5
mov dword [esp + 0x14], 0x60
mov dword [esp + 0x18], 0x80
call 0x100d370
mov ebx, eax
cmp ebx, 0
jl 0xfe34cf
mov eax, dword [esp + 0x24c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x248]
xor edi, edi
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call 0x100da80
mov ecx, dword [esp + 0x248]
mov dword [esp + 0x28c], ecx
mov cl, byte [esp + 0x1bc]
mov byte [esp + 0x220], cl
mov byte [esp + 0x7a], 0x63
mov byte [esp + 0x7b], 0x62
mov byte [esp + 0x7c], 0x61
mov byte [esp + 0x7d], 0x60
xor ebx, ebx
cmp ebx, 4
jae 0xfe3442
mov cl, byte [esp + ebx + 0x7a]
mov dl, bl
add dl, 0xbc
xor dl, cl
add dl, 0x20
mov byte [esp + ebx + 0x7a], dl
add ebx, 1
jmp 0xfe3426
mov dword [esp + 0x290], eax
mov ecx, dword [esp + 0x7a]
xor edx, edx
mov edi, dword [esp + 0x2c]
cmp edx, dword [0x101965c]
jb 0xfe345d
jmp 0xfe34c8
mov eax, dword [0x1019660]
cmp dword [eax + edx*8], 0xb430e561
sete bl
test bl, 1
jne 0xfe3473
jmp 0xfe34bc
mov eax, dword [eax + edx*8 + 4]
cmp eax, ecx
je 0xfe34bc
mov dword [esp + 0x270], ecx
mov ecx, dword [0x1019664]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x28c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x25c], edx
call 0x100b480
mov edx, dword [esp + 0x25c]
mov ecx, dword [esp + 0x270]
test bl, 1
jne 0xfe34c6
add edx, 1
jmp 0xfe3453
jmp 0xfe34c8
mov ebx, dword [esp + 0x290]
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.01009b60
mov dword [esp + 0x30], 0
cmp ebx, 0
jge 0xfe3505
mov dword [esp + 0x34], 0
mov eax, 4
mov ecx, dword [esp + 0xac]
mov ebx, dword [esp + 0x28]
jmp 0xfe3bb0
mov ecx, dword [esp + 0xac]
cmp ecx, 1
mov ebx, dword [esp + 0x28]
jne 0xfe38a9
mov al, byte [esp + 0x164]
mov byte [esp + 0x1fc], al
mov byte [esp + 0x4d], 0x38
mov byte [esp + 0x4e], 0x31
mov byte [esp + 0x4f], 0x80
xor eax, eax
cmp eax, 3
jae 0xfe359c
movzx edx, byte [esp + eax + 0x4d]
mov edi, eax
add edi, 0xc8c429ee
mov ecx, 0x11
sub ecx, eax
and ecx, edx
xor edx, 0xffffffff
and edi, edx
or ecx, edi
mov edi, ecx
add edi, 0xb9deb08f
mov edx, edi
and edx, 1
and edi, 1
xor edi, 0xffffffff
add ecx, 0xb9deb091
add ecx, edi
mov edi, edx
and edi, ecx
shl edi, 1
xor edx, ecx
add edx, edi
mov byte [esp + eax + 0x4d], dl
mov ecx, eax
shl ecx, 1
and ecx, 2
mov edx, eax
shl edx, 1
and edx, 2
xor eax, 0xffffffff
add edx, eax
sub ecx, edx
mov eax, ecx
jmp 0xfe3538
lea eax, [esp + 0x4d]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00fd1860
mov dword [esp + 0x148], eax
mov al, byte [esp + 0x160]
mov byte [esp + 0x200], al
mov byte [esp + 0x4a], 0x12
mov byte [esp + 0x4b], 0x66
mov byte [esp + 0x4c], 0xf5
xor eax, eax
cmp eax, 3
jae 0xfe35fb
mov cl, byte [esp + eax + 0x4a]
mov dl, al
add dl, 0xab
xor dl, cl
add dl, 0xa8
mov byte [esp + eax + 0x4a], dl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0xfe35d6
lea eax, [esp + 0x4a]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00fd1860
mov dword [esp + 0x144], eax
mov dword [esp], ebx
call fcn.00fe4a00
mov edi, eax
cmp dword [esp + 0x148], 0
setne al
xor edx, edx
mov byte [esp + 0x47], al
test al, 1
jne 0xfe3637
jmp 0xfe364d
mov eax, dword [esp + 0x148]
mov dword [esp], eax
call fcn.00fd8100
mov edx, eax
sub edx, 0xffffffff
jmp 0xfe364d
cmp dword [esp + 0x144], 0
setne cl
xor eax, eax
mov byte [esp + 0x48], cl
test cl, 1
mov dword [esp + 0x240], edx
jne 0xfe366c
jmp 0xfe3687
mov eax, dword [esp + 0x144]
mov dword [esp], eax
call fcn.00fd8100
sub eax, 0xffffffff
mov edx, dword [esp + 0x240]
jmp 0xfe3687
add edi, 9
add edi, edx
mov dword [esp + 0x29c], eax
xor eax, 0xffffffff
sub eax, 0xffffffff
sub edi, eax
sub edi, 0xffffffff
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0xfe36b6
mov ecx, eax
mov dword [esp], ecx
call fcn.00fd7ff0
mov dword [esp + 0x34], eax
mov al, byte [esp + 0x15c]
mov byte [esp + 0x204], al
mov byte [esp + 0xc2], 0xde
mov byte [esp + 0xc3], 0x6d
mov byte [esp + 0xc4], 0xdb
mov byte [esp + 0xc5], 0x6f
mov byte [esp + 0xc6], 0xde
mov byte [esp + 0xc7], 0x71
mov byte [esp + 0xc8], 0xd6
mov byte [esp + 0xc9], 0x73
mov byte [esp + 0xca], 0xd8
mov byte [esp + 0xcb], 0x75
mov byte [esp + 0xcc], 0xda
mov byte [esp + 0xcd], 0x77
mov byte [esp + 0xce], 0x8b
mov byte [esp + 0xcf], 0x79
mov byte [esp + 0xd0], 0x88
mov byte [esp + 0xd1], 0x7b
mov byte [esp + 0xd2], 0x7c
mov byte [esp + 0xd3], 0x7d
xor eax, eax
cmp eax, 0x12
jae 0xfe37cd
movzx edi, byte [esp + eax + 0xc2]
mov edx, eax
add edx, 0xb73770c
mov ecx, edi
and ecx, 0x87
xor ecx, 0x7eea5a87
mov ebx, edi
xor ebx, 0x7eea5a87
or edi, 0x78
and edi, ebx
mov ebx, 0xf48c88f3
sub ebx, eax
xor ebx, 0x8115a578
and edx, 0x8115a578
or ecx, edi
or ebx, edx
xor ecx, ebx
mov ebx, dword [esp + 0x28]
add ecx, 0xa464479f
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
mov byte [esp + eax + 0xc2], cl
add eax, 1
jmp 0xfe3762
lea eax, [esp + 0xc2]
mov ecx, dword [esp + 0x34]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00fd9c80
mov ecx, eax
add ecx, 2
mov word [eax], 0x20
add ecx, 2
mov word [eax + 2], 0x22
mov dword [esp], ecx
mov dword [esp + 4], ebx
call fcn.00fd9c80
mov ecx, ebx
mov ebx, eax
add ebx, 2
mov word [eax], 0x22
cmp ecx, 0
je 0xfe381c
mov dword [esp], ecx
call fcn.00fd8000
test byte [esp + 0x47], 1
jne 0xfe3827
mov edi, ebx
jmp 0xfe3861
mov edi, ebx
add edi, 2
mov word [ebx], 0x2c
xor eax, eax
mov dword [esp], edi
mov eax, dword [esp + 0x240]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x148]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.00fda6d0
jmp 0xfe385b
shl eax, 1
add edi, eax
jmp 0xfe3861
test byte [esp + 0x48], 1
jne 0xfe386a
jmp 0xfe389c
mov eax, edi
add eax, 2
mov word [edi], 0x2c
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x29c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x144]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.00fda6d0
xor ebx, ebx
xor ecx, ecx
mov edi, dword [esp + 0x2c]
jmp 0xfe3bae
mov dword [esp + 0x34], 0
cmp ecx, 2
je 0xfe38bb
jmp 0xfe3bae
mov dword [esp], ebx
call fcn.00fe4a00
add eax, 0x1d
add eax, 0xdc2c1c76
add eax, 1
sub eax, 0xdc2c1c76
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0xfe38e9
mov ecx, eax
mov dword [esp], ecx
call fcn.00fd7ff0
mov dword [esp + 0x34], eax
mov al, byte [esp + 0x158]
mov byte [esp + 0x208], al
mov byte [esp + 0x56], 0x61
mov byte [esp + 0x57], 0x44
mov byte [esp + 0x58], 0x45
mov byte [esp + 0x59], 0x46
xor eax, eax
cmp eax, 4
jae 0xfe394b
mov dl, byte [esp + eax + 0x56]
mov edi, eax
and edi, 0x65
xor edi, 0x65
mov ecx, eax
and ecx, 0x9a
sub ecx, edi
xor cl, dl
add cl, 0x28
mov byte [esp + eax + 0x56], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0xfe3919
mov al, byte [esp + 0x154]
mov byte [esp + 0x20c], al
mov byte [esp + 0x106], 0x17
mov byte [esp + 0x107], pe_nt_image_headers32
mov byte [esp + 0x108], 0xe6
mov byte [esp + 0x109], 0x7a
mov byte [esp + 0x10a], 0xec
mov byte [esp + 0x10b], 0x7c
mov byte [esp + 0x10c], 0xd8
mov byte [esp + 0x10d], 0x7e
mov byte [esp + 0x10e], 0xed
mov byte [esp + 0x10f], 0x70
mov byte [esp + 0x110], 0xe2
mov byte [esp + 0x111], 0x72
mov byte [esp + 0x112], 0xeb
mov byte [esp + 0x113], 0x74
mov byte [esp + 0x114], 0xd0
mov byte [esp + 0x115], 0x76
mov byte [esp + 0x116], 0xeb
mov byte [esp + 0x117], 0x68
mov byte [esp + 0x118], 0xf5
mov byte [esp + 0x119], 0x6a
mov byte [esp + 0x11a], 0x8b
mov byte [esp + 0x11b], 0x6c
mov byte [esp + 0x11c], 0xb0
mov byte [esp + 0x11d], 0x6e
mov byte [esp + 0x11e], 0xca
mov byte [esp + 0x11f], 0x60
mov byte [esp + 0x120], 0xe9
mov byte [esp + 0x121], 0x62
mov byte [esp + 0x122], 0xc6
mov byte [esp + 0x123], 0x64
mov byte [esp + 0x124], 0xc6
mov byte [esp + 0x125], 0x66
mov byte [esp + 0x126], 0x87
mov byte [esp + 0x127], 0x58
mov byte [esp + 0x128], 0xfb
mov byte [esp + 0x129], 0x5a
mov byte [esp + 0x12a], 0xd2
mov byte [esp + 0x12b], 0x5c
mov byte [esp + 0x12c], 0xcd
mov byte [esp + 0x12d], 0x5e
mov byte [esp + 0x12e], 0xfe
mov byte [esp + 0x12f], 0x50
mov byte [esp + 0x130], 0xc2
mov byte [esp + 0x131], 0x52
mov byte [esp + 0x132], 0xc0
mov byte [esp + 0x133], 0x54
mov byte [esp + 0x134], 0xb5
mov byte [esp + 0x135], 0x56
mov byte [esp + 0x136], 0x8a
mov byte [esp + 0x137], 0x48
mov byte [esp + 0x138], 0xef
mov byte [esp + 0x139], 0x4a
mov byte [esp + 0x13a], 0xab
mov byte [esp + 0x13b], 0x4c
mov byte [esp + 0x13c], 0xaf
mov byte [esp + 0x13d], 0x4e
mov byte [esp + 0x13e], 0x4f
mov byte [esp + 0x13f], 0x40
xor eax, eax
cmp eax, 0x3a
jae 0xfe3b70
movzx edx, byte [esp + eax + 0x106]
mov edi, eax
shl edi, 1
and edi, 0x6b4308fe
mov ecx, eax
xor ecx, 0x4a5e7b80
sub ecx, edi
xor ecx, edx
mov edi, ecx
shl edi, 1
xor edi, 0xffffffff
mov edx, ecx
add edx, edi
or ecx, 0xf8
or edx, 7
sub edx, ecx
mov byte [esp + eax + 0x106], dl
add eax, 1
jmp 0xfe3b2b
lea eax, [esp + 0x106]
mov ecx, dword [esp + 0x34]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00fd9c80
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.00fd9c80
lea ecx, [esp + 0x56]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00fd9c80
mov edi, dword [esp + 0x2c]
mov ecx, 2
jmp 0xfe3bae
xor eax, eax
cmp eax, 0
je 0xfe3ecc
jmp 0xfe4596
call fcn.00fe4a30
xor ebx, 1
mov ecx, dword [esp + 0xac]
mov eax, ecx
xor eax, 2
or ebx, eax
sete al
mov dword [esp + 0x34], 0
test al, 1
mov ebx, 0
jne 0xfe3bed
jmp 0xfe3ecc
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00fe45b0
mov edi, eax
add edi, 1
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0xfe3c16
mov ecx, eax
mov dword [esp], ecx
call fcn.00fd7ff0
mov edx, dword [esp + 0x30]
xor ecx, ecx
mov dword [esp + 0x23c], eax
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.00fda6d0
mov eax, dword [esp + 0x24c]
add eax, 0x18
mov ecx, eax
and ecx, 1
shl ecx, 1
xor eax, 1
add eax, ecx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0xfe3c6f
mov ecx, eax
mov dword [esp], ecx
call fcn.00fd7ff0
mov ebx, eax
mov al, byte [esp + 0x150]
mov byte [esp + 0x210], al
mov byte [esp + 0xd4], 0x7c
mov byte [esp + 0xd5], 0xcd
mov byte [esp + 0xd6], 0x61
mov byte [esp + 0xd7], 0xcf
mov byte [esp + 0xd8], 0x67
mov byte [esp + 0xd9], 0xd1
mov byte [esp + 0xda], 0x77
mov byte [esp + 0xdb], 0xd3
mov byte [esp + 0xdc], 0x66
mov byte [esp + 0xdd], 0xd5
mov byte [esp + 0xde], 0x65
mov byte [esp + 0xdf], 0xd7
mov byte [esp + 0xe0], 0x70
mov byte [esp + 0xe1], 0xd9
mov byte [esp + 0xe2], 0x7f
mov byte [esp + 0xe3], 0xdb
mov byte [esp + 0xe4], 0x70
mov byte [esp + 0xe5], 0xdd
mov byte [esp + 0xe6], 0x72
mov byte [esp + 0xe7], 0xdf
mov byte [esp + 0xe8], 0x40
mov byte [esp + 0xe9], 0xa1
mov byte [esp + 0xea], 0x4f
mov byte [esp + 0xeb], 0xa3
mov byte [esp + 0xec], 1
mov byte [esp + 0xed], 0xa5
mov byte [esp + 0xee], 0x1e
mov byte [esp + 0xef], 0xa7
mov byte [esp + 0xf0], 0xd
mov byte [esp + 0xf1], 0xa9
mov byte [esp + 0xf2], 9
mov byte [esp + 0xf3], 0xab
mov byte [esp + 0xf4], 0x4c
mov byte [esp + 0xf5], 0xad
mov byte [esp + 0xf6], 0xc
mov byte [esp + 0xf7], 0xaf
mov byte [esp + 0xf8], 9
mov byte [esp + 0xf9], 0xb1
mov byte [esp + 0xfa], 2
mov byte [esp + 0xfb], 0xb3
mov byte [esp + 0xfc], 0x15
mov byte [esp + 0xfd], 0xb5
mov byte [esp + 0xfe], 5
mov byte [esp + 0xff], 0xb7
mov byte [esp + 0x100], 0xb
mov byte [esp + 0x101], 0xb9
mov byte [esp + 0x102], 0x5a
mov byte [esp + 0x103], 0xbb
mov byte [esp + 0x104], 0xbc
mov byte [esp + 0x105], 0xbd
xor eax, eax
cmp eax, 0x32
jae 0xfe3e80
movzx edx, byte [esp + eax + 0xd4]
mov ecx, eax
xor ecx, 0x15dbc453
mov edi, eax
or edi, 0x6a243bac
and edi, ecx
shl edi, 1
mov ecx, eax
xor ecx, 0x6a243bac
add ecx, edi
mov edi, ecx
xor edi, edx
xor ecx, edx
shl ecx, 1
sub ecx, edi
mov edx, ecx
add edx, 1
mov edi, ecx
xor edi, 0xffffffff
or edi, 0x2ede229f
add edi, edx
shl edi, 1
xor ecx, 0xaede229f
mov edx, ecx
add edx, edi
and ecx, 1
or edx, 1
add edx, ecx
mov byte [esp + eax + 0xd4], dl
add eax, 1
jmp 0xfe3e19
lea eax, [esp + 0xd4]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00fd9c80
mov dword [esp], eax
mov eax, dword [esp + 0x23c]
mov dword [esp + 4], eax
call fcn.00fd9c80
mov edi, dword [esp + 0x2c]
jmp 0xfe3eac
mov eax, dword [esp + 0x23c]
mov dword [esp], eax
call fcn.00fd8000
jmp 0xfe3ebd
mov dword [esp + 0x34], ebx
jmp 0xfe3ec3
xor ebx, ebx
mov ecx, 2
jmp 0xfe3ecc
test ecx, ecx
je 0xfe3eed
jmp 0xfe3ed2
mov eax, ecx
sub eax, 1
je 0xfe405f
jmp 0xfe3edf
sub ecx, 2
je 0xfe4328
jmp 0xfe4556
test byte [esp + 0x49], 1
jne 0xfe3ef9
jmp 0xfe405f
lea edi, [esp + 0x318]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov dword [esp + 0x318], 0x44
mov eax, dword [0x1018650]
mov dword [esp], eax
mov dword [esp + 4], 0x755f867b
call fcn.0100ce00
test eax, eax
setne cl
xor ecx, ecx
lea ecx, [esp + 0x318]
lea edx, [esp + 0x2c4]
mov dword [esp], ebx
mov edi, dword [esp + 0x34]
mov dword [esp + 4], edi
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
call eax
sub esp, 0x28
cmp eax, 0
je 0xfe4056
mov eax, dword [esp + 0x2c4]
mov dword [esp + 0x280], eax
mov al, byte [esp + 0x1b8]
mov byte [esp + 0x224], al
mov byte [esp + 0x76], 0x63
mov byte [esp + 0x77], 0x62
mov byte [esp + 0x78], 0x61
mov byte [esp + 0x79], 0x60
xor eax, eax
cmp eax, 4
jae 0xfe3fdd
mov cl, byte [esp + eax + 0x76]
mov dl, al
add dl, 0xbc
xor dl, cl
add dl, 0x20
mov byte [esp + eax + 0x76], dl
add eax, 1
jmp 0xfe3fc1
mov ecx, dword [esp + 0x76]
xor edi, edi
cmp edi, dword [0x101965c]
jb 0xfe3fed
jmp 0xfe4056
mov dword [esp + 0x28], ebx
mov eax, dword [0x1019660]
cmp dword [eax + edi*8], 0xb430e561
sete bl
test bl, 1
jne 0xfe4007
jmp 0xfe4042
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0xfe4042
mov dword [esp + 0x260], ecx
mov ecx, dword [0x1019664]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x280]
mov dword [esp + 0xc], eax
call 0x100b480
mov ecx, dword [esp + 0x260]
test bl, 1
jne 0xfe4050
add edi, 1
mov ebx, dword [esp + 0x28]
jmp 0xfe3fe3
mov ebx, dword [esp + 0x28]
jmp 0xfe4056
mov edi, dword [esp + 0x2c]
jmp 0xfe4556
mov eax, dword [0x1018650]
mov dword [esp], eax
mov dword [esp + 4], 0x4e0c8565
call fcn.0100ce00
test eax, eax
setne cl
mov ecx, dword [esp + 0x30]
xor edx, edx
lea edx, [0xff2940]
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
call eax
sub esp, 0x18
mov dword [esp + 0x244], eax
cmp eax, 0
setne al
test al, 1
jne 0xfe40c7
jmp 0xfe4323
mov dword [esp + 0x28], ebx
mov al, byte [esp + 0x14c]
mov byte [esp + 0x214], al
mov byte [esp + 0x86], 0xf
mov byte [esp + 0x87], 0xca
mov byte [esp + 0x88], 0x4d
mov byte [esp + 0x89], 0x2e
mov byte [esp + 0x8a], 0xc
mov byte [esp + 0x8b], 0xb
mov byte [esp + 0x8c], 0xa
mov byte [esp + 0x8d], 9
xor edi, edi
cmp edi, 8
jae 0xfe417a
movzx eax, byte [esp + edi + 0x86]
mov ebx, edi
add ebx, 0x235fb4b7
mov ecx, eax
xor ecx, 0xffffffff
mov edx, ebx
and edx, ecx
mov ecx, 0x1ca04b48
sub ecx, edi
and ecx, 0x178f329a
and ebx, 0xe870cd65
or ecx, ebx
mov ebx, ecx
xor ebx, 0x65
xor ecx, 0x65
or ebx, ecx
and ebx, eax
or edx, ebx
add edx, 0xe5025a47
mov eax, edx
shl eax, 1
and eax, 2
xor edx, 1
add edx, eax
mov byte [esp + edi + 0x86], dl
add edi, 1
jmp 0xfe411b
mov eax, dword [esp + 0x86]
mov ecx, dword [esp + 0x8a]
mov dword [esp + 0x2ac], ecx
mov dword [esp + 0x2a8], eax
mov al, byte [esp + 0x218]
mov byte [esp + 0x21c], al
mov byte [esp + 0x7e], 0x63
mov byte [esp + 0x7f], 0x62
mov byte [esp + 0x80], 0x61
mov byte [esp + 0x81], 0x60
xor ecx, ecx
mov ebx, dword [esp + 0x28]
cmp ecx, 4
jae 0xfe41e0
mov al, byte [esp + ecx + 0x7e]
mov dl, cl
add dl, 0xbc
xor dl, al
add dl, 0x20
mov byte [esp + ecx + 0x7e], dl
add ecx, 1
jmp 0xfe41c4
mov ecx, dword [esp + 0x7e]
xor edi, edi
cmp edi, dword [0x101965c]
jb 0xfe41f0
jmp 0xfe426a
mov eax, dword [0x1019660]
cmp dword [eax + edi*8], 0xa67d73aa
sete bl
test bl, 1
jne 0xfe4206
jmp 0xfe4256
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0xfe4256
mov dword [esp + 0x278], ecx
mov ecx, dword [0x1019664]
xor edx, edx
lea edx, [esp + 0x2a8]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0xc
mov eax, dword [esp + 0x244]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
call 0x100b480
mov ecx, dword [esp + 0x278]
test bl, 1
jne 0xfe4264
add edi, 1
mov ebx, dword [esp + 0x28]
jmp 0xfe41e6
mov ebx, dword [esp + 0x28]
jmp 0xfe426a
mov al, byte [esp + 0x1b4]
mov byte [esp + 0x228], al
mov byte [esp + 0x72], 0x63
mov byte [esp + 0x73], 0x62
mov byte [esp + 0x74], 0x61
mov byte [esp + 0x75], 0x60
xor ecx, ecx
cmp ecx, 4
jae 0xfe42aa
mov al, byte [esp + ecx + 0x72]
mov dl, cl
add dl, 0xbc
xor dl, al
add dl, 0x20
mov byte [esp + ecx + 0x72], dl
add ecx, 1
jmp 0xfe428e
mov ecx, dword [esp + 0x72]
xor edi, edi
cmp edi, dword [0x101965c]
jb 0xfe42ba
jmp 0xfe431f
mov eax, dword [0x1019660]
cmp dword [eax + edi*8], 0xb430e561
sete bl
test bl, 1
jne 0xfe42d0
jmp 0xfe430b
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0xfe430b
mov dword [esp + 0x264], ecx
mov ecx, dword [0x1019664]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x244]
mov dword [esp + 0xc], eax
call 0x100b480
mov ecx, dword [esp + 0x264]
test bl, 1
jne 0xfe4319
add edi, 1
mov ebx, dword [esp + 0x28]
jmp 0xfe42b0
mov ebx, dword [esp + 0x28]
jmp 0xfe431f
mov edi, dword [esp + 0x2c]
jmp 0xfe4556
lea edi, [esp + 0x2d4]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov dword [esp + 0x2d4], 0x44
mov eax, dword [0x1018650]
mov dword [esp], eax
mov dword [esp + 4], 0x755f867b
call fcn.0100ce00
test eax, eax
setne cl
xor ecx, ecx
lea ecx, [esp + 0x2d4]
lea edx, [esp + 0x2b4]
mov dword [esp], 0
mov edi, dword [esp + 0x34]
mov dword [esp + 4], edi
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0x8000000
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
call eax
sub esp, 0x28
cmp eax, 0
mov edi, dword [esp + 0x2c]
je 0xfe4556
mov eax, dword [esp + 0x2b8]
mov dword [esp + 0x288], eax
mov al, byte [esp + 0x1b0]
mov byte [esp + 0x22c], al
mov byte [esp + 0x6e], 0x63
mov byte [esp + 0x6f], 0x62
mov byte [esp + 0x70], 0x61
mov byte [esp + 0x71], 0x60
xor eax, eax
cmp eax, 4
jae 0xfe4414
mov cl, byte [esp + eax + 0x6e]
mov dl, al
add dl, 0xbc
xor dl, cl
add dl, 0x20
mov byte [esp + eax + 0x6e], dl
add eax, 1
jmp 0xfe43f8
mov ecx, dword [esp + 0x6e]
xor edi, edi
mov dword [esp + 0x28], ebx
cmp edi, dword [0x101965c]
jb 0xfe4428
jmp 0xfe448d
mov eax, dword [0x1019660]
cmp dword [eax + edi*8], 0xb430e561
sete bl
test bl, 1
jne 0xfe443e
jmp 0xfe4479
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0xfe4479
mov dword [esp + 0x26c], ecx
mov ecx, dword [0x1019664]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x288]
mov dword [esp + 0xc], eax
call 0x100b480
mov ecx, dword [esp + 0x26c]
test bl, 1
jne 0xfe4487
add edi, 1
mov ebx, dword [esp + 0x28]
jmp 0xfe441e
mov ebx, dword [esp + 0x28]
jmp 0xfe448d
mov eax, dword [esp + 0x2b4]
mov dword [esp + 0x284], eax
mov al, byte [esp + 0x1ac]
mov byte [esp + 0x230], al
mov byte [esp + 0x6a], 0x63
mov byte [esp + 0x6b], 0x62
mov byte [esp + 0x6c], 0x61
mov byte [esp + 0x6d], 0x60
xor eax, eax
cmp eax, 4
jae 0xfe44db
mov cl, byte [esp + eax + 0x6a]
mov dl, al
add dl, 0xbc
xor dl, cl
add dl, 0x20
mov byte [esp + eax + 0x6a], dl
add eax, 1
jmp 0xfe44bf
mov ecx, dword [esp + 0x6a]
xor edi, edi
cmp edi, dword [0x101965c]
jb 0xfe44eb
jmp 0xfe4550
mov eax, dword [0x1019660]
cmp dword [eax + edi*8], 0xb430e561
sete bl
test bl, 1
jne 0xfe4501
jmp 0xfe453c
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0xfe453c
mov dword [esp + 0x268], ecx
mov ecx, dword [0x1019664]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x284]
mov dword [esp + 0xc], eax
call 0x100b480
mov ecx, dword [esp + 0x268]
test bl, 1
jne 0xfe454a
add edi, 1
mov ebx, dword [esp + 0x28]
jmp 0xfe44e1
mov ebx, dword [esp + 0x28]
jmp 0xfe4550
mov edi, dword [esp + 0x2c]
jmp 0xfe4556
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.01009b60
cmp ebx, 0
sete al
test al, 1
jne 0xfe4578
jmp 0xfe456e
mov dword [esp], ebx
call fcn.00fd8000
jmp 0xfe4578
mov ecx, dword [esp + 0x34]
cmp ecx, 0
sete al
test al, 1
jne 0xfe4594
jmp 0xfe4588
mov dword [esp], ecx
call fcn.00fd8000
jmp 0xfe4592
jmp 0xfe4594
jmp 0xfe4596
sub edi, 0xffffffff
jmp 0xfe269c
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret