Function at 0x4113d0
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, 0x7f8
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00401b70
mov ebx, eax
cmp ebx, 0
jne 0x4113f8
xor eax, eax
jmp 0x4136de
xor esi, esi
jmp 0x4113fc
mov dword [esp], ebx
call fcn.00401f40
cmp esi, eax
jb 0x41140f
mov al, 1
jmp 0x4136de
mov dword [esp], ebx
mov dword [esp + 4], esi
call fcn.00401f50
mov edi, eax
mov al, byte [esp + 0x1a8]
mov byte [esp + 0x1c0], al
mov byte [esp + 0x3a], 0xe6
mov byte [esp + 0x3b], 0x74
movzx eax, byte [esp + 0x3a]
mov ecx, eax
and ecx, 0x78b8802b
shl ecx, 1
add eax, 0x78b8802b
sub eax, ecx
add al, 0xa8
mov byte [esp + 0x3a], al
movzx eax, byte [esp + 0x3b]
mov ecx, eax
and ecx, 0x78b8802c
shl ecx, 1
add eax, 0x78b8802c
sub eax, ecx
add al, 0xa8
mov byte [esp + 0x3b], al
lea eax, [esp + 0x3a]
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00401e40
cmp eax, 0
setne al
test al, 1
jne 0x411494
jmp 0x41164a
mov dword [esp + 0x70], ebx
mov al, byte [esp + 0x1a4]
mov byte [esp + 0x1c4], al
mov byte [esp + 0x85], 0xcf
mov byte [esp + 0x86], 0xde
mov byte [esp + 0x87], 0xab
xor eax, eax
mov dword [esp + 0x88], edi
cmp eax, 3
jae 0x411574
movzx ecx, byte [esp + eax + 0x85]
mov edx, eax
xor edx, 0x9743625e
mov edi, eax
or edi, 0x68bc9da1
and edi, edx
mov edx, edi
and edx, 2
xor edx, 2
mov ebx, edi
and ebx, 0xfffffffd
imul ebx, edx
mov edx, edi
and edx, 2
or edi, 2
imul edi, edx
add edi, ebx
mov edx, eax
xor edx, 0x68bc9da1
add edx, edi
mov edi, ecx
shl edi, 1
xor edi, 0xffffffff
add edi, ecx
and edi, 0x6a4fb594
and ecx, 0x6b
or ecx, edi
xor edx, ecx
mov edi, edx
xor edi, 0x95b04a6b
mov ecx, 0xba1b12f6
sub ecx, edi
mov edi, ecx
and edi, 1
and edx, 1
xor edx, 1
or edi, edx
mov ebx, ecx
and ebx, 0xfe
mov edx, ecx
xor edx, 1
add ecx, edx
mov edx, ecx
sub edx, ebx
and ecx, edi
shl ecx, 1
xor edx, edi
mov edi, dword [esp + 0x88]
add edx, ecx
mov byte [esp + eax + 0x85], dl
add eax, 1
jmp 0x4114c7
lea eax, [esp + 0x85]
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401e40
cmp eax, 0
setne al
mov ebx, dword [esp + 0x70]
test al, 1
jne 0x4115a2
jmp 0x41164a
call fcn.00413bb0
mov al, byte [esp + 0x1a0]
mov byte [esp + 0x1c8], al
call fcn.00413bb0
call fcn.00413bb0
mov byte [esp + 0x38], 0xe2
call fcn.00413bb0
call fcn.00413bb0
mov byte [esp + 0x39], 0x38
movzx eax, byte [esp + 0x38]
xor eax, 0xee7ba9bf
mov ecx, eax
add ecx, 0x8c22b207
mov edx, ecx
and edx, 1
and eax, 1
and ecx, 0xfe
or ecx, eax
lea eax, [ecx + edx*2]
mov byte [esp + 0x38], al
movzx eax, byte [esp + 0x39]
xor eax, 0xee7ba9c0
mov ecx, eax
add ecx, 0x8c22b207
mov edx, ecx
and edx, 1
and eax, 1
and ecx, 0xfe
or ecx, eax
lea eax, [ecx + edx*2]
mov byte [esp + 0x39], al
lea eax, [esp + 0x38]
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 8], 3
call fcn.00401e40
sub eax, 1
mov al, 1
sbb al, 0xff
test al, 1
jne 0x41164a
jmp 0x41164f
jmp 0x4136cd
mov al, byte [esp + 0x19c]
mov byte [esp + 0x1cc], al
mov byte [esp + 0x36], 0x6b
mov byte [esp + 0x37], 0xff
mov al, byte [esp + 0x36]
xor al, 0x8e
add al, 0x90
mov byte [esp + 0x36], al
mov al, byte [esp + 0x37]
xor al, 0x8f
add al, 0x90
mov byte [esp + 0x37], al
lea eax, [esp + 0x36]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00401880
mov ebx, eax
jmp 0x411693
mov al, byte [esp + 0x198]
mov byte [esp + 0x1d0], al
mov byte [esp + 0x82], 1
mov byte [esp + 0x83], 0xc
mov byte [esp + 0x84], 0x99
xor eax, eax
cmp eax, 3
jae 0x4116f3
movzx edx, byte [esp + eax + 0x82]
mov ecx, eax
add ecx, 0x5f
mov edi, 0xa0
sub edi, eax
and edi, edx
xor edx, 0xffffffff
and ecx, edx
or ecx, edi
mov edi, dword [esp + 0x88]
add cl, 8
mov byte [esp + eax + 0x82], cl
add eax, 1
jmp 0x4116bb
jmp 0x4116f5
jmp 0x4116f7
lea eax, [esp + 0x82]
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.00401980
fnstcw word [esp + 0x8e]
movzx eax, word [esp + 0x8e]
or eax, 0xc00
mov word [esp + 0x232], ax
fldcw word [esp + 0x232]
fistp dword [esp + 0x298]
fldcw word [esp + 0x8e]
mov eax, dword [esp + 0x298]
mov dword [esp + 0x14c], eax
mov al, byte [esp + 0x194]
mov byte [esp + 0x1d4], al
mov byte [esp + 0x34], 0xa3
mov byte [esp + 0x35], 7
call fcn.00413bb0
call fcn.00413bb0
mov al, byte [esp + 0x34]
xor al, 0xb6
add al, 0x50
mov byte [esp + 0x34], al
mov al, byte [esp + 0x35]
xor al, 0xb7
add al, 0x50
mov byte [esp + 0x35], al
lea eax, [esp + 0x34]
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.00401980
fnstcw word [esp + 0x8c]
movzx eax, word [esp + 0x8c]
or eax, 0xc00
mov word [esp + 0x230], ax
fldcw word [esp + 0x230]
fistp dword [esp + 0x29c]
fldcw word [esp + 0x8c]
mov edi, dword [esp + 0x29c]
lea eax, [esp + 0x3f4]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0x400
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0
call fcn.0040a680
lea eax, [esp + 0x3f4]
lea ecx, [esp + 0x68]
lea edx, [esp + 0x24c]
xor ebx, ebx
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.0040adb0
test al, 1
jne 0x411829
mov ebx, dword [esp + 0x70]
jmp 0x4136cd
cmp edi, 0
sete al
mov byte [esp + 0x7b], al
test al, 1
mov ebx, dword [esp + 0x70]
jne 0x411840
jmp 0x412b2a
mov al, byte [esp + 0x190]
mov byte [esp + 0x1d8], al
mov byte [esp + 0x32], 0x1f
mov byte [esp + 0x33], 0x80
movzx eax, byte [esp + 0x32]
mov ecx, eax
and ecx, 0x4537ea37
mov edx, ecx
and edx, 2
xor edx, 2
mov edi, ecx
and edi, 0xfd
imul edi, edx
mov edx, ecx
and edx, 2
or ecx, 2
imul ecx, edx
add ecx, edi
add eax, 0x4537ea37
sub eax, ecx
add eax, 0xd640ae47
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + 0x32], al
movzx eax, byte [esp + 0x33]
mov ecx, eax
and ecx, 0x4537ea38
and ecx, 0xfd
shl ecx, 1
add eax, 0x4537ea38
sub eax, ecx
add eax, 0xd640ae47
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + 0x33], al
lea eax, [esp + 0x32]
mov ecx, dword [esp + 0x88]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401880
cmp eax, 0
je 0x411b70
mov dword [esp + 0x254], eax
mov dword [esp], eax
call fcn.00413710
mov dword [esp + 0x23c], eax
add eax, 1
mov ecx, 2
mov dword [esp + 0x250], eax
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411928
mov ecx, eax
mov dword [esp], ecx
call fcn.00408300
mov edi, eax
xor eax, eax
mov dword [esp], edi
mov eax, dword [esp + 0x250]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x254]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040a680
xor eax, eax
lea eax, [esp + 0x18c]
mov dword [esp], 0
mov dword [esp + 0x2c], edi
mov dword [esp + 4], edi
mov ecx, dword [esp + 0x23c]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
call dword [0x44354c]
sub esp, 0x18
mov cl, byte [esp + 0x188]
mov byte [esp + 0x1dc], cl
mov byte [esp + 0x4c], 0x27
mov byte [esp + 0x4d], 0x45
mov byte [esp + 0x4e], 0x46
mov byte [esp + 0x4f], 0x87
movzx edi, byte [esp + 0x4c]
mov edx, edi
xor edx, 0xf8
mov ecx, edi
xor ecx, 7
xor edi, 7
and ecx, edi
or edx, 0x36d6879c
or ecx, 0xc9297863
and ecx, edx
add cl, 0xe0
mov byte [esp + 0x4c], cl
movzx edi, byte [esp + 0x4d]
mov edx, edi
xor edx, 0xf8
mov ecx, edi
xor ecx, 7
xor edi, 7
and ecx, edi
or edx, 0x36d6879d
or ecx, 0xc9297862
and ecx, edx
add cl, 0xe0
mov byte [esp + 0x4d], cl
movzx edi, byte [esp + 0x4e]
mov edx, edi
xor edx, 0xf8
mov ecx, edi
xor ecx, 7
xor edi, 7
and ecx, edi
or edx, 0x36d6879e
or ecx, 0xc9297861
and ecx, edx
add cl, 0xe0
mov byte [esp + 0x4e], cl
movzx edi, byte [esp + 0x4f]
mov edx, edi
xor edx, 0xf8
mov ecx, edi
xor ecx, 7
xor edi, 7
and ecx, edi
or edx, 0x36d6879f
or ecx, 0xc9297860
and ecx, edx
add cl, 0xe0
mov byte [esp + 0x4f], cl
mov ecx, dword [esp + 0x4c]
cmp eax, ecx
jne 0x411a98
mov edi, dword [esp + 0x2c]
jmp 0x411a7a
mov dword [esp], edi
call fcn.00408310
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.00434cc0
mov eax, 4
jmp 0x411b62
mov eax, dword [esp + 0x18c]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411ab5
mov ecx, eax
mov dword [esp], ecx
call fcn.00408300
mov edi, dword [0x44354c]
mov ecx, dword [esp + 0x18c]
xor edx, edx
mov dword [esp], 0
mov edx, dword [esp + 0x2c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x23c]
mov dword [esp + 8], edx
mov dword [esp + 0x234], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
lea eax, [esp + 0x18c]
mov dword [esp + 0x14], eax
call edi
sub esp, 0x18
cmp eax, 0
setge al
test al, 1
jne 0x411b49
jmp 0x411b11
mov edi, dword [esp + 0x2c]
jmp 0x411b17
mov eax, dword [esp + 0x234]
mov dword [esp], eax
call fcn.00408310
jmp 0x411b28
jmp 0x411b2a
jmp 0x411b2c
mov dword [esp], edi
call fcn.00408310
jmp 0x411b36
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.00434cc0
mov eax, 4
jmp 0x411b62
mov eax, dword [esp + 0x2c]
jmp 0x411b4f
mov dword [esp], eax
call fcn.00408310
xor eax, eax
mov edi, dword [esp + 0x234]
jmp 0x411b62
cmp eax, 0
je 0x41221f
jmp 0x412223
call fcn.00408a80
mov ebx, eax
and ebx, 0xf
add ebx, 0x10
xor ecx, ecx
lea eax, [esp + 0x3b4]
cmp ecx, ebx
jb 0x411e08
mov word [eax], 0
mov al, byte [esp + 0x180]
mov byte [esp + 0x1e4], al
mov byte [esp + 0xb6], 0xc2
mov byte [esp + 0xb7], 0x18
mov byte [esp + 0xb8], 0xad
mov byte [esp + 0xb9], 0x1a
mov byte [esp + 0xba], 0xde
mov byte [esp + 0xbb], 0x1c
mov byte [esp + 0xbc], 0xa0
mov byte [esp + 0xbd], 0x1e
mov byte [esp + 0xbe], 0xaf
mov byte [esp + 0xbf], 0x10
mov byte [esp + 0xc0], 0xf4
mov byte [esp + 0xc1], 0x12
mov byte [esp + 0xc2], 0xbf
mov byte [esp + 0xc3], 0x14
mov byte [esp + 0xc4], 0x15
mov byte [esp + 0xc5], 0x16
xor eax, eax
cmp eax, 0x10
jae 0x411c54
mov dl, byte [esp + eax + 0xb6]
mov edi, eax
shl edi, 1
and edi, 0xbe
mov ecx, eax
xor ecx, 0xdf
add ecx, edi
xor cl, dl
add cl, 8
mov byte [esp + eax + 0xb6], cl
add eax, 1
jmp 0x411c23
lea eax, [esp + 0x354]
lea ecx, [esp + 0xb6]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409c10
lea ecx, [esp + 0x3b4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409c10
lea edx, [esp + 0x354]
jmp 0x411c8a
mov ecx, eax
xor ecx, 0xffffffff
and ecx, edx
xor edx, 0xffffffff
and eax, edx
sub eax, ecx
sar eax, 1
xor ecx, ecx
lea edx, [esp + 0x354]
lea ecx, [esp + 0x17c]
mov dword [esp], 0
mov dword [esp + 4], edx
mov dword [esp + 0x290], eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ecx
call dword [0x44354c]
sub esp, 0x18
mov cl, byte [esp + 0x178]
mov byte [esp + 0x1e8], cl
mov byte [esp + 0x44], 0x42
mov byte [esp + 0x45], 0x62
mov byte [esp + 0x46], 0x63
mov byte [esp + 0x47], 0x24
movzx ecx, byte [esp + 0x44]
xor ecx, 0xbe098229
mov edi, ecx
shl edi, 1
and edi, 0x1f67dd6e
xor ecx, 0xfb3eeb7
mov edx, ecx
add edx, edi
and ecx, 1
mov edi, edx
and edi, 0xfffffffe
mov ebx, edx
xor ebx, 1
add edx, ebx
sub edx, edi
mov edi, ecx
and edi, edx
shl edi, 1
xor ecx, edx
add ecx, edi
mov byte [esp + 0x44], cl
movzx ecx, byte [esp + 0x45]
xor ecx, 0xbe09822a
mov edi, ecx
shl edi, 1
and edi, 0x1f67dd6e
xor ecx, 0xfb3eeb7
mov edx, ecx
add edx, edi
and ecx, 1
mov edi, edx
and edi, 0xfffffffe
mov ebx, edx
xor ebx, 1
add edx, ebx
sub edx, edi
mov edi, ecx
and edi, edx
shl edi, 1
xor ecx, edx
add ecx, edi
mov byte [esp + 0x45], cl
movzx ecx, byte [esp + 0x46]
xor ecx, 0xbe09822b
mov edi, ecx
shl edi, 1
and edi, 0x1f67dd6e
xor ecx, 0xfb3eeb7
mov edx, ecx
add edx, edi
and ecx, 1
mov edi, edx
and edi, 0xfffffffe
mov ebx, edx
xor ebx, 1
add edx, ebx
sub edx, edi
mov edi, ecx
and edi, edx
shl edi, 1
xor ecx, edx
add ecx, edi
mov byte [esp + 0x46], cl
movzx ecx, byte [esp + 0x47]
xor ecx, 0xbe09822c
mov edi, ecx
shl edi, 1
and edi, 0x1f67dd6e
xor ecx, 0xfb3eeb7
mov edx, ecx
add edx, edi
and ecx, 1
mov edi, edx
and edi, 0xfffffffe
mov ebx, edx
xor ebx, 1
add edx, ebx
sub edx, edi
mov edi, ecx
and edi, edx
shl edi, 1
xor ecx, edx
add ecx, edi
mov byte [esp + 0x47], cl
mov ecx, dword [esp + 0x44]
cmp eax, ecx
jne 0x411f18
jmp 0x411f34
mov dword [esp + 0x278], ecx
mov dword [esp + 0x274], eax
call fcn.00408a80
mov cl, byte [esp + 0x184]
mov byte [esp + 0x1e0], cl
mov byte [esp + 0x48], 0x27
mov byte [esp + 0x49], 4
mov byte [esp + 0x4a], 5
mov byte [esp + 0x4b], 6
movzx edx, byte [esp + 0x48]
xor edx, 0x772d62db
mov ecx, edx
add ecx, 0x76
mov edi, 9
sub edi, edx
and edi, 0x4f
and ecx, 0xb0
sub ecx, edi
add cl, 1
mov byte [esp + 0x48], cl
movzx edx, byte [esp + 0x49]
xor edx, 0x772d62dc
mov ecx, edx
add ecx, 0x76
mov edi, 9
sub edi, edx
and edi, 0x4f
and ecx, 0xb0
sub ecx, edi
add cl, 1
mov byte [esp + 0x49], cl
movzx edx, byte [esp + 0x4a]
xor edx, 0x772d62dd
mov ecx, edx
add ecx, 0x76
mov edi, 9
sub edi, edx
and edi, 0x4f
and ecx, 0xb0
sub ecx, edi
add cl, 1
mov byte [esp + 0x4a], cl
movzx edx, byte [esp + 0x4b]
xor edx, 0x772d62de
mov ecx, edx
add ecx, 0x76
mov edi, 9
sub edi, edx
and edi, 0x4f
and ecx, 0xb0
sub ecx, edi
add cl, 1
mov byte [esp + 0x4b], cl
cdq
idiv dword [esp + 0x48]
movsx ecx, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov edx, dword [esp + 0x274]
mov eax, edx
add eax, 2
mov word [edx], cx
mov ecx, dword [esp + 0x278]
sub ecx, 0xbecbf06e
add ecx, 1
add ecx, 0xbecbf06e
jmp 0x411b86
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.00434cc0
xor edi, edi
mov eax, 4
jmp 0x41221a
mov eax, dword [esp + 0x17c]
add eax, 4
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
mov ebx, dword [esp + 0x70]
jne 0x411f58
mov ecx, eax
mov dword [esp], ecx
call fcn.00408300
mov edi, dword [0x44354c]
mov ecx, dword [esp + 0x17c]
xor edx, edx
lea edx, [esp + 0x354]
mov dword [esp], 0
mov dword [esp + 4], edx
mov edx, dword [esp + 0x290]
mov dword [esp + 8], edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
lea eax, [esp + 0x17c]
mov dword [esp + 0x14], eax
call edi
sub esp, 0x18
cmp eax, 0
jge 0x411fd1
jmp 0x411faf
mov edi, dword [esp + 0x2c]
mov dword [esp], edi
call fcn.00408310
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.00434cc0
mov eax, 4
jmp 0x41221a
mov eax, dword [esp + 0x14c]
cmp eax, 0
jne 0x4120aa
mov al, byte [esp + 0x174]
mov byte [esp + 0x1ec], al
mov byte [esp + 0xac], 0xf5
mov byte [esp + 0xad], 0xac
mov byte [esp + 0xae], 0xc8
mov byte [esp + 0xaf], 0xae
mov byte [esp + 0xb0], 0x27
mov byte [esp + 0xb1], 0xa0
mov byte [esp + 0xb2], 0xc4
mov byte [esp + 0xb3], 0xa2
mov byte [esp + 0xb4], 0xa3
mov byte [esp + 0xb5], 0xa4
xor eax, eax
mov edi, dword [esp + 0x2c]
cmp eax, 0xa
jae 0x41208e
movzx edx, byte [esp + eax + 0xac]
mov ecx, 0xcc
sub ecx, eax
mov edi, 0xcc
sub edi, eax
mov ebx, 0xcc
sub ebx, eax
and edi, ebx
and ecx, edi
mov edi, edx
xor edi, 0xffffffff
or ecx, edi
mov edi, eax
add edi, 0x33
or edi, edx
and ecx, edi
mov edi, dword [esp + 0x2c]
add cl, 0x68
mov byte [esp + eax + 0xac], cl
add eax, 1
jmp 0x412045
lea eax, [esp + 0xac]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00413b40
mov ebx, dword [esp + 0x70]
jmp 0x412216
cmp eax, 1
mov edi, dword [esp + 0x2c]
jne 0x412178
mov al, byte [esp + 0x170]
mov byte [esp + 0x1f0], al
mov byte [esp + 0xa2], 0x7a
mov byte [esp + 0xa3], 0x15
mov byte [esp + 0xa4], 0xb2
mov byte [esp + 0xa5], 0x17
mov byte [esp + 0xa6], 0xb4
mov byte [esp + 0xa7], 0x19
mov byte [esp + 0xa8], 0xb6
mov byte [esp + 0xa9], 0x1b
mov byte [esp + 0xaa], 0x1c
mov byte [esp + 0xab], 0x1d
xor eax, eax
cmp eax, 0xa
jae 0x412160
movzx edx, byte [esp + eax + 0xa2]
mov edi, eax
and edi, 0x5a321f4c
xor edi, 0x5a321f4c
mov ecx, eax
and ecx, 0xa5cde0b3
sub ecx, edi
mov edi, dword [esp + 0x2c]
xor ecx, edx
add ecx, 0xd190fa5f
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
mov byte [esp + eax + 0xa2], cl
add eax, 1
jmp 0x412117
lea eax, [esp + 0xa2]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00413b40
jmp 0x412216
cmp eax, 2
jne 0x412216
mov al, byte [esp + 0x16c]
mov byte [esp + 0x1f4], al
mov byte [esp + 0x98], 0x7e
mov byte [esp + 0x99], 0x51
mov byte [esp + 0x9a], 0x22
mov byte [esp + 0x9b], 0x53
mov byte [esp + 0x9c], 0x27
mov byte [esp + 0x9d], 0x55
mov byte [esp + 0x9e], 0x67
mov byte [esp + 0x9f], 0x57
mov byte [esp + 0xa0], 0x58
mov byte [esp + 0xa1], 0x59
xor eax, eax
cmp eax, 0xa
jae 0x412203
mov cl, byte [esp + eax + 0x98]
mov dl, al
add dl, 0xd0
xor dl, cl
xor dl, 0x80
mov byte [esp + eax + 0x98], dl
add eax, 1
jmp 0x4121e1
lea eax, [esp + 0x98]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00413b40
xor eax, eax
jmp 0x41221a
cmp eax, 0
jne 0x412223
xor eax, eax
jmp 0x412223
cmp eax, 0
jne 0x4136cd
lea eax, [esp + 0x248]
xor ecx, ecx
mov dword [esp], edi
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.00437af0
mov ecx, edi
mov edi, eax
cmp edi, 0
setge al
test al, 1
mov dword [esp + 0x2c], ecx
jne 0x412280
jmp 0x4123d6
mov eax, dword [esp + 0x24c]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x248]
jmp 0x412294
xor edi, edi
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.004380a0
mov edi, eax
mov eax, dword [esp + 0x248]
mov dword [esp + 0x288], eax
mov al, byte [esp + 0x1bc]
mov byte [esp + 0x21c], al
mov byte [esp + 0x60], 0xc7
mov byte [esp + 0x61], 0xc6
mov byte [esp + 0x62], 0xc5
mov byte [esp + 0x63], 0xc4
movzx eax, byte [esp + 0x60]
mov ecx, eax
or ecx, 0x87
and eax, 0x87
xor ecx, 0xffffffff
or eax, ecx
add al, 0x40
mov byte [esp + 0x60], al
movzx eax, byte [esp + 0x61]
mov ecx, eax
or ecx, 0x86
and eax, 0x86
xor ecx, 0xffffffff
or eax, ecx
add al, 0x40
mov byte [esp + 0x61], al
movzx eax, byte [esp + 0x62]
mov ecx, eax
or ecx, 0x85
and eax, 0x85
xor ecx, 0xffffffff
or eax, ecx
add al, 0x40
mov byte [esp + 0x62], al
movzx eax, byte [esp + 0x63]
mov ecx, eax
or ecx, 0x84
and eax, 0x84
xor ecx, 0xffffffff
or eax, ecx
add al, 0x40
mov byte [esp + 0x63], al
mov eax, dword [esp + 0x60]
mov dword [esp + 0x26c], eax
xor eax, eax
cmp eax, dword [0x443550]
jb 0x41236b
jmp 0x4123d4
mov ecx, dword [0x443554]
cmp dword [ecx + eax*8], 0xb430e561
sete dl
mov byte [esp + 0x78], dl
test dl, 1
mov dword [esp + 0x258], eax
jne 0x41238d
jmp 0x4123bf
mov eax, dword [ecx + eax*8 + 4]
cmp eax, dword [esp + 0x26c]
je 0x4123bf
mov ecx, dword [0x443558]
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 fcn.004360a0
test byte [esp + 0x78], 1
je 0x4123c8
jmp 0x4123d4
mov eax, dword [esp + 0x258]
add eax, 1
jmp 0x412361
jmp 0x4123d6
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.00434cc0
mov dword [esp + 0x68], 0
cmp edi, 0
setge al
test al, 1
mov ecx, dword [esp + 0x14c]
mov edi, dword [esp + 0x2c]
jne 0x412413
jmp 0x412401
mov dword [esp + 0x3c], 0
mov eax, 4
jmp 0x412b17
cmp ecx, 1
jne 0x41278f
mov al, byte [esp + 0x168]
mov byte [esp + 0x1f8], al
mov byte [esp + 0x7f], 0xb9
mov byte [esp + 0x80], 0x8e
mov byte [esp + 0x81], 0x11
xor eax, eax
cmp eax, 3
jae 0x41247d
movzx ecx, byte [esp + eax + 0x7f]
mov edx, 0xd8
sub edx, eax
mov edi, 0xd8
sub edi, eax
and edx, edi
xor edx, 0xffffffff
mov edi, ecx
and edi, edx
xor ecx, 0xffffffff
mov edx, 0xd8
sub edx, eax
and edx, ecx
or edx, edi
mov cl, 0xc7
sub cl, dl
mov byte [esp + eax + 0x7f], cl
add eax, 1
jmp 0x412441
lea eax, [esp + 0x7f]
mov ecx, dword [esp + 0x88]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401880
mov ebx, eax
mov al, byte [esp + 0x164]
mov byte [esp + 0x1fc], al
mov byte [esp + 0x7c], 0x51
mov byte [esp + 0x7d], 0x43
mov byte [esp + 0x7e], 0x32
xor eax, eax
mov edi, dword [esp + 0x2c]
cmp eax, 3
jae 0x4124de
mov cl, byte [esp + eax + 0x7c]
mov dl, al
add dl, 0xb0
xor dl, cl
xor dl, 0x80
mov byte [esp + eax + 0x7c], dl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x4124b9
lea eax, [esp + 0x7c]
mov ecx, dword [esp + 0x88]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401880
mov dword [esp + 0x148], eax
mov dword [esp], edi
call fcn.00413b90
mov edi, eax
cmp ebx, 0
setne al
mov dword [esp + 0x144], 0
mov byte [esp + 0x7a], al
test al, 1
jne 0x412521
jmp 0x412533
mov dword [esp], ebx
call fcn.004136f0
sub eax, 0xffffffff
mov dword [esp + 0x144], eax
cmp dword [esp + 0x148], 0
setne al
xor edx, edx
mov byte [esp + 0x6f], al
test al, 1
jne 0x41254a
jmp 0x412566
mov eax, dword [esp + 0x148]
mov dword [esp], eax
call fcn.004136f0
xor ecx, ecx
sub ecx, eax
add ecx, 0xffffffff
xor edx, edx
sub edx, ecx
jmp 0x412566
xor edi, 0xffffffff
sub edi, 0xffffffff
mov eax, 9
sub eax, edi
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, dword [esp + 0x144]
add ecx, eax
xor eax, eax
sub eax, ecx
mov ecx, eax
and ecx, edx
mov dword [esp + 0x240], edx
or eax, edx
add eax, ecx
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4125ae
mov ecx, eax
mov dword [esp + 0x294], ebx
mov dword [esp], ecx
call fcn.00408300
mov dword [esp + 0x3c], eax
mov al, byte [esp + 0x160]
mov byte [esp + 0x200], al
mov byte [esp + 0xc6], 0x72
mov byte [esp + 0xc7], 1
mov byte [esp + 0xc8], 0x77
mov byte [esp + 0xc9], 3
mov byte [esp + 0xca], 0x6a
mov byte [esp + 0xcb], 5
mov byte [esp + 0xcc], 0x62
mov byte [esp + 0xcd], 7
mov byte [esp + 0xce], 0x64
mov byte [esp + 0xcf], 9
mov byte [esp + 0xd0], 0x66
mov byte [esp + 0xd1], 0xb
mov byte [esp + 0xd2], 0x3f
mov byte [esp + 0xd3], 0xd
mov byte [esp + 0xd4], 0x3c
mov byte [esp + 0xd5], 0xf
mov byte [esp + 0xd6], 0x10
mov byte [esp + 0xd7], 0x11
xor eax, eax
mov edi, dword [esp + 0x2c]
cmp eax, 0x12
jae 0x4126a5
mov cl, byte [esp + eax + 0xc6]
movzx edi, cl
mov edx, eax
add edx, 0xfe19d000
or edx, edi
and edi, eax
sub edx, edi
mov edi, edx
shl edi, 1
xor edi, 0xffffffff
add edx, edi
mov edi, dword [esp + 0x2c]
and edx, eax
shl edx, 1
mov ebx, eax
sub ebx, edx
add bl, cl
mov byte [esp + eax + 0xc6], bl
add eax, 1
jmp 0x412665
lea eax, [esp + 0xc6]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00409c10
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], edi
call fcn.00409c10
mov ebx, eax
add ebx, 2
mov word [eax], 0x22
cmp edi, 0
je 0x4126f4
mov dword [esp], edi
call fcn.00408310
jmp 0x4126f4
test byte [esp + 0x7a], 1
jne 0x41270e
mov edi, ebx
mov ebx, dword [esp + 0x70]
mov al, byte [esp + 0x6f]
mov edx, dword [esp + 0x240]
jmp 0x412755
mov edi, ebx
add edi, 2
mov word [ebx], 0x2c
xor eax, eax
mov dword [esp], edi
mov eax, dword [esp + 0x144]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x294]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040a680
shl eax, 1
add edi, eax
mov ebx, dword [esp + 0x70]
mov edx, dword [esp + 0x240]
mov al, byte [esp + 0x6f]
jmp 0x412755
test al, 1
jne 0x41275b
jmp 0x412786
mov eax, edi
add eax, 2
mov word [edi], 0x2c
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], edx
mov eax, dword [esp + 0x148]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040a680
xor edi, edi
xor ecx, ecx
jmp 0x412b13
cmp ecx, 2
sete al
mov dword [esp + 0x3c], 0
test al, 1
jne 0x4127a6
jmp 0x412b13
mov dword [esp], edi
call fcn.00413b90
xor ecx, ecx
sub ecx, eax
mov eax, 0x1d
sub eax, ecx
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 0x4127db
mov ecx, eax
mov dword [esp], ecx
call fcn.00408300
mov dword [esp + 0x3c], eax
mov al, byte [esp + 0x15c]
mov byte [esp + 0x204], al
mov byte [esp + 0x40], 0x14
mov byte [esp + 0x41], 0x77
mov byte [esp + 0x42], pe_nt_image_headers32
mov byte [esp + 0x43], 0x79
movzx eax, byte [esp + 0x40]
mov ecx, eax
and ecx, 0x46
shl ecx, 1
add eax, 0x75ada246
sub eax, ecx
mov ecx, eax
and ecx, 0xcf
mov edx, eax
and edx, 0xcf
add eax, 0xd0
add eax, ecx
sub eax, edx
mov byte [esp + 0x40], al
movzx eax, byte [esp + 0x41]
mov ecx, eax
and ecx, 0x47
shl ecx, 1
add eax, 0x75ada247
sub eax, ecx
mov ecx, eax
and ecx, 0xcf
mov edx, eax
and edx, 0xcf
add eax, 0xd0
add eax, ecx
sub eax, edx
mov byte [esp + 0x41], al
movzx eax, byte [esp + 0x42]
mov ecx, eax
and ecx, 0x48
shl ecx, 1
add eax, 0x75ada248
sub eax, ecx
mov ecx, eax
and ecx, 0xcf
mov edx, eax
and edx, 0xcf
add eax, 0xd0
add eax, ecx
sub eax, edx
mov byte [esp + 0x42], al
movzx eax, byte [esp + 0x43]
mov ecx, eax
and ecx, 0x49
shl ecx, 1
add eax, 0x75ada249
sub eax, ecx
mov ecx, eax
and ecx, 0xcf
mov edx, eax
and edx, 0xcf
add eax, 0xd0
add eax, ecx
sub eax, edx
mov byte [esp + 0x43], al
mov al, byte [esp + 0x158]
mov byte [esp + 0x208], al
mov byte [esp + 0x10a], 0x24
mov byte [esp + 0x10b], 0x95
mov byte [esp + 0x10c], 0x39
mov byte [esp + 0x10d], 0x97
mov byte [esp + 0x10e], 0x2f
mov byte [esp + 0x10f], 0x99
mov byte [esp + 0x110], 0x3f
mov byte [esp + 0x111], 0x9b
mov byte [esp + 0x112], 0x2e
mov byte [esp + 0x113], 0x9d
mov byte [esp + 0x114], 0x2d
mov byte [esp + 0x115], 0x9f
mov byte [esp + 0x116], 0x48
mov byte [esp + 0x117], 0xe1
mov byte [esp + 0x118], 0x47
mov byte [esp + 0x119], 0xe3
mov byte [esp + 0x11a], 0x48
mov byte [esp + 0x11b], 0xe5
mov byte [esp + 0x11c], 0x4a
mov byte [esp + 0x11d], 0xe7
mov byte [esp + 0x11e], 0x88
mov byte [esp + 0x11f], 0xe9
mov byte [esp + 0x120], 0x87
mov byte [esp + 0x121], 0xeb
mov byte [esp + 0x122], 0x49
mov byte [esp + 0x123], 0xed
mov byte [esp + 0x124], 0x56
mov byte [esp + 0x125], 0xef
mov byte [esp + 0x126], 0x55
mov byte [esp + 0x127], 0xf1
mov byte [esp + 0x128], 0x51
mov byte [esp + 0x129], 0xf3
mov byte [esp + 0x12a], 0x94
mov byte [esp + 0x12b], 0xf5
mov byte [esp + 0x12c], 0x54
mov byte [esp + 0x12d], 0xf7
mov byte [esp + 0x12e], 0x41
mov byte [esp + 0x12f], 0xf9
mov byte [esp + 0x130], 0x4a
mov byte [esp + 0x131], 0xfb
mov byte [esp + 0x132], 0x5d
mov byte [esp + 0x133], 0xfd
mov byte [esp + 0x134], 0x4d
mov byte [esp + 0x135], 0xff
mov byte [esp + 0x136], 0x73
mov byte [esp + 0x137], 0xc1
mov byte [esp + 0x138], 0xa2
mov byte [esp + 0x139], 0xc3
mov byte [esp + 0x13a], 0xa9
mov byte [esp + 0x13b], 0xc5
mov byte [esp + 0x13c], 0x60
mov byte [esp + 0x13d], 0xc7
mov byte [esp + 0x13e], 0xa8
mov byte [esp + 0x13f], 0xc9
mov byte [esp + 0x140], 0xa8
mov byte [esp + 0x141], 0xcb
mov byte [esp + 0x142], 0xcc
mov byte [esp + 0x143], 0xcd
xor eax, eax
cmp eax, 0x3a
jae 0x412adb
mov dl, byte [esp + eax + 0x10a]
mov edi, eax
xor edi, 0xcc
mov ecx, eax
shl ecx, 1
and ecx, 0x66
sub ecx, edi
mov edi, dword [esp + 0x2c]
xor cl, dl
add cl, 0x60
mov byte [esp + eax + 0x10a], cl
add eax, 1
jmp 0x412aa9
lea eax, [esp + 0x10a]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00409c10
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00409c10
lea ecx, [esp + 0x40]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409c10
mov ecx, 2
xor eax, eax
jmp 0x412b17
cmp eax, 0
sete al
test al, 1
jne 0x412e58
jmp 0x4136cd
xor edi, 1
mov ecx, dword [esp + 0x14c]
mov eax, ecx
xor eax, 2
or edi, eax
sete al
mov dword [esp + 0x3c], 0
test al, 1
mov edi, 0
jne 0x412b54
jmp 0x412e58
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.00413710
mov edi, eax
sub edi, 0xffffffff
mov ecx, 2
mov eax, edi
mul ecx
seto dl
jmp 0x412b73
mov ecx, 0xffffffff
test dl, 1
jne 0x412b7f
mov ecx, eax
mov dword [esp], ecx
call fcn.00408300
mov edx, dword [esp + 0x68]
xor ecx, ecx
mov dword [esp + 0x28c], eax
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.0040a680
mov eax, dword [esp + 0x24c]
add eax, 0x694989b7
add eax, 0x96b67661
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412bd6
mov ecx, eax
mov dword [esp], ecx
call fcn.00408300
mov dword [esp + 0x3c], eax
mov al, byte [esp + 0x154]
mov byte [esp + 0x20c], al
mov byte [esp + 0xd8], 0xa0
mov byte [esp + 0xd9], 0xd1
mov byte [esp + 0xda], 0xbd
mov byte [esp + 0xdb], 0xd3
mov byte [esp + 0xdc], 0xa3
mov byte [esp + 0xdd], 0xd5
mov byte [esp + 0xde], 0xb3
mov byte [esp + 0xdf], 0xd7
mov byte [esp + 0xe0], 0xaa
mov byte [esp + 0xe1], 0xd9
mov byte [esp + 0xe2], 0xa9
mov byte [esp + 0xe3], 0xdb
mov byte [esp + 0xe4], 0xb4
mov byte [esp + 0xe5], 0xdd
mov byte [esp + 0xe6], 0xbb
mov byte [esp + 0xe7], 0xdf
mov byte [esp + 0xe8], 0x8c
mov byte [esp + 0xe9], 0xe1
mov byte [esp + 0xea], 0x8e
mov byte [esp + 0xeb], 0xe3
mov byte [esp + 0xec], 0xc4
mov byte [esp + 0xed], 0xe5
mov byte [esp + 0xee], 0xcb
mov byte [esp + 0xef], 0xe7
mov byte [esp + 0xf0], 0x8d
mov byte [esp + 0xf1], 0xe9
mov byte [esp + 0xf2], 0x92
mov byte [esp + 0xf3], 0xeb
mov byte [esp + 0xf4], 0x89
mov byte [esp + 0xf5], 0xed
mov byte [esp + 0xf6], 0x8d
mov byte [esp + 0xf7], 0xef
mov byte [esp + 0xf8], 0xd0
mov byte [esp + 0xf9], 0xf1
mov byte [esp + 0xfa], 0x90
mov byte [esp + 0xfb], 0xf3
mov byte [esp + 0xfc], 0x8d
mov byte [esp + 0xfd], 0xf5
mov byte [esp + 0xfe], 0x86
mov byte [esp + 0xff], 0xf7
mov byte [esp + 0x100], 0x99
mov byte [esp + 0x101], 0xf9
mov byte [esp + 0x102], 0x89
mov byte [esp + 0x103], 0xfb
mov byte [esp + 0x104], 0x8f
mov byte [esp + 0x105], 0xfd
mov byte [esp + 0x106], 0xde
mov byte [esp + 0x107], 0xff
mov byte [esp + 0x108], 0
mov byte [esp + 0x109], 1
xor ecx, ecx
cmp ecx, 0x32
jae 0x412e19
movzx eax, byte [esp + ecx + 0xd8]
mov dword [esp + 0x238], ecx
mov ecx, dword [esp + 0x238]
add ecx, 0xd5fe8050
mov edx, ecx
and edx, eax
shl edx, 1
add edx, 0xbab2f935
sub ecx, edx
add ecx, 0xbab2f935
add ecx, eax
mov edx, ecx
add edx, 0x7f
mov ebx, ecx
add ebx, 0x500bfd80
mov eax, 0xaff40280
sub eax, ecx
or eax, 1
add eax, ebx
mov edi, eax
and edi, 0xfd
mov ebx, eax
and ebx, 2
xor ebx, 2
imul ebx, edi
mov edi, eax
and edi, 2
or eax, 2
imul eax, edi
add ebx, eax
and ecx, 1
and edx, 0xfe
or edx, ecx
mov ecx, dword [esp + 0x238]
add ebx, edx
mov byte [esp + ecx + 0xd8], bl
add ecx, 1
jmp 0x412d82
lea eax, [esp + 0xd8]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00409c10
mov dword [esp], eax
mov edi, dword [esp + 0x28c]
mov dword [esp + 4], edi
call fcn.00409c10
mov ebx, dword [esp + 0x70]
mov dword [esp], edi
call fcn.00408310
xor edi, edi
mov ecx, 2
jmp 0x412e58
test ecx, ecx
je 0x412e79
jmp 0x412e5e
mov eax, ecx
sub eax, 1
je 0x413050
jmp 0x412e6b
sub ecx, 2
je 0x4133ae
jmp 0x41368f
test byte [esp + 0x7b], 1
jne 0x412e85
jmp 0x413050
mov dword [esp + 0x2c], edi
call fcn.00413bb0
lea edi, [esp + 0x310]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov dword [esp + 0x310], 0x44
mov eax, dword [0x442544]
mov dword [esp], eax
mov dword [esp + 4], 0x755f867b
call fcn.00437540
test eax, eax
setne cl
xor ecx, ecx
lea edx, [esp + 0x2bc]
mov edi, dword [esp + 0x2c]
mov dword [esp], edi
mov ecx, dword [esp + 0x3c]
mov dword [esp + 4], ecx
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
lea ecx, [esp + 0x310]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
call eax
sub esp, 0x28
cmp eax, 0
setne al
test al, 1
jne 0x412f2e
jmp 0x413049
mov eax, dword [esp + 0x2bc]
mov dword [esp + 0x27c], eax
mov al, byte [esp + 0x1b8]
mov byte [esp + 0x220], al
mov byte [esp + 0x5c], 0xc7
mov byte [esp + 0x5d], 0xc6
mov byte [esp + 0x5e], 0xc5
mov byte [esp + 0x5f], 0xc4
movzx eax, byte [esp + 0x5c]
mov ecx, eax
or ecx, 0x87
and eax, 0x87
xor ecx, 0xffffffff
or eax, ecx
add al, 0x40
mov byte [esp + 0x5c], al
movzx eax, byte [esp + 0x5d]
mov ecx, eax
or ecx, 0x86
and eax, 0x86
xor ecx, 0xffffffff
or eax, ecx
add al, 0x40
mov byte [esp + 0x5d], al
movzx eax, byte [esp + 0x5e]
mov ecx, eax
or ecx, 0x85
and eax, 0x85
xor ecx, 0xffffffff
or eax, ecx
add al, 0x40
mov byte [esp + 0x5e], al
movzx eax, byte [esp + 0x5f]
mov ecx, eax
or ecx, 0x84
and eax, 0x84
xor ecx, 0xffffffff
or eax, ecx
add al, 0x40
mov byte [esp + 0x5f], al
mov ecx, dword [esp + 0x5c]
xor edi, edi
cmp edi, dword [0x443550]
jb 0x412fe2
jmp 0x413045
mov eax, dword [0x443554]
cmp dword [eax + edi*8], 0xb430e561
sete dl
mov byte [esp + 0x74], dl
test dl, 1
jne 0x412ffc
jmp 0x413037
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x413037
mov dword [esp + 0x25c], ecx
mov ecx, dword [0x443558]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x27c]
mov dword [esp + 0xc], eax
call fcn.004360a0
mov ecx, dword [esp + 0x25c]
test byte [esp + 0x74], 1
je 0x413040
jmp 0x413045
add edi, 1
jmp 0x412fd8
mov edi, dword [esp + 0x2c]
jmp 0x41304b
jmp 0x41368f
mov eax, dword [0x442544]
mov dword [esp], eax
mov dword [esp + 4], 0x4e0c8565
call fcn.00437540
test eax, eax
setne cl
mov ecx, dword [esp + 0x68]
xor edx, edx
lea edx, [0x41ff50]
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
je 0x4133a9
mov dword [esp + 0x2c], edi
mov al, byte [esp + 0x150]
mov byte [esp + 0x210], al
mov byte [esp + 0x90], 0xbf
mov byte [esp + 0x91], 0x7a
mov byte [esp + 0x92], 0xfd
mov byte [esp + 0x93], 0x9e
mov byte [esp + 0x94], 0xbc
mov byte [esp + 0x95], 0xbb
mov byte [esp + 0x96], 0xba
mov byte [esp + 0x97], 0xb9
xor ecx, ecx
cmp ecx, 8
jae 0x413155
mov al, byte [esp + ecx + 0x90]
mov edx, ecx
and edx, 0x85
mov edi, ecx
and edi, 2
xor edi, 2
mov ebx, ecx
and ebx, 0x85
imul edi, ebx
mov ebx, ecx
and ebx, 2
or edx, 2
imul edx, ebx
add edx, edi
mov edi, ecx
xor edi, 0x87
add edx, edi
xor dl, al
add dl, 0xc8
mov byte [esp + ecx + 0x90], dl
add ecx, 1
jmp 0x413106
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x2a4], ecx
mov dword [esp + 0x2a0], eax
mov al, byte [esp + 0x214]
mov byte [esp + 0x218], al
mov byte [esp + 0x64], 0xc7
mov byte [esp + 0x65], 0xc6
mov byte [esp + 0x66], 0xc5
mov byte [esp + 0x67], 0xc4
movzx eax, byte [esp + 0x64]
mov ecx, eax
or ecx, 0x87
and eax, 0x87
xor ecx, 0xffffffff
or eax, ecx
add al, 0x40
mov byte [esp + 0x64], al
movzx eax, byte [esp + 0x65]
mov ecx, eax
or ecx, 0x86
and eax, 0x86
xor ecx, 0xffffffff
or eax, ecx
add al, 0x40
mov byte [esp + 0x65], al
movzx eax, byte [esp + 0x66]
mov ecx, eax
or ecx, 0x85
and eax, 0x85
xor ecx, 0xffffffff
or eax, ecx
add al, 0x40
mov byte [esp + 0x66], al
movzx eax, byte [esp + 0x67]
mov ecx, eax
or ecx, 0x84
and eax, 0x84
xor ecx, 0xffffffff
or eax, ecx
add al, 0x40
mov byte [esp + 0x67], al
mov ecx, dword [esp + 0x64]
xor edi, edi
mov ebx, dword [esp + 0x70]
cmp edi, dword [0x443550]
jb 0x41321b
jmp 0x41329a
mov eax, dword [0x443554]
cmp dword [eax + edi*8], 0xa67d73aa
sete dl
test dl, 1
jne 0x413231
jmp 0x41328b
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
jne 0x41323b
jmp 0x41328b
mov dword [esp + 0x270], ecx
mov ecx, dword [0x443558]
mov byte [esp + 0x79], dl
xor edx, edx
lea edx, [esp + 0x2a0]
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 fcn.004360a0
mov dl, byte [esp + 0x79]
mov ecx, dword [esp + 0x270]
test dl, 1
je 0x413292
jmp 0x41329a
add edi, 1
jmp 0x413211
mov al, byte [esp + 0x1b4]
mov byte [esp + 0x224], al
mov byte [esp + 0x58], 0xc7
mov byte [esp + 0x59], 0xc6
mov byte [esp + 0x5a], 0xc5
mov byte [esp + 0x5b], 0xc4
movzx eax, byte [esp + 0x58]
mov ecx, eax
or ecx, 0x87
and eax, 0x87
xor ecx, 0xffffffff
or eax, ecx
add al, 0x40
mov byte [esp + 0x58], al
movzx eax, byte [esp + 0x59]
mov ecx, eax
or ecx, 0x86
and eax, 0x86
xor ecx, 0xffffffff
or eax, ecx
add al, 0x40
mov byte [esp + 0x59], al
movzx eax, byte [esp + 0x5a]
mov ecx, eax
or ecx, 0x85
and eax, 0x85
xor ecx, 0xffffffff
or eax, ecx
add al, 0x40
mov byte [esp + 0x5a], al
movzx eax, byte [esp + 0x5b]
mov ecx, eax
or ecx, 0x84
and eax, 0x84
xor ecx, 0xffffffff
or eax, ecx
add al, 0x40
mov byte [esp + 0x5b], al
mov ecx, dword [esp + 0x58]
xor edi, edi
cmp edi, dword [0x443550]
jb 0x413340
jmp 0x4133a5
mov eax, dword [0x443554]
cmp dword [eax + edi*8], 0xb430e561
sete dl
test dl, 1
jne 0x413356
jmp 0x413399
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x413399
mov dword [esp + 0x260], ecx
mov ecx, dword [0x443558]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x244]
mov dword [esp + 0xc], eax
mov byte [esp + 0x75], dl
call fcn.004360a0
mov dl, byte [esp + 0x75]
mov ecx, dword [esp + 0x260]
test dl, 1
je 0x4133a0
jmp 0x4133a5
add edi, 1
jmp 0x413336
mov edi, dword [esp + 0x2c]
jmp 0x41368f
mov dword [esp + 0x2c], edi
call fcn.00413bb0
lea edi, [esp + 0x2cc]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov dword [esp + 0x2cc], 0x44
mov eax, dword [0x442544]
mov dword [esp], eax
mov dword [esp + 4], 0x755f867b
call fcn.00437540
test eax, eax
setne cl
xor ecx, ecx
lea ecx, [esp + 0x2cc]
lea edx, [esp + 0x2ac]
mov dword [esp], 0
mov edi, dword [esp + 0x3c]
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 0x41345b
jmp 0x41368d
mov eax, dword [esp + 0x2b0]
mov dword [esp + 0x284], eax
mov al, byte [esp + 0x1b0]
mov byte [esp + 0x228], al
mov byte [esp + 0x54], 0xc7
mov byte [esp + 0x55], 0xc6
mov byte [esp + 0x56], 0xc5
mov byte [esp + 0x57], 0xc4
movzx eax, byte [esp + 0x54]
mov ecx, eax
or ecx, 0x87
and eax, 0x87
xor ecx, 0xffffffff
or eax, ecx
add al, 0x40
mov byte [esp + 0x54], al
movzx eax, byte [esp + 0x55]
mov ecx, eax
or ecx, 0x86
and eax, 0x86
xor ecx, 0xffffffff
or eax, ecx
add al, 0x40
mov byte [esp + 0x55], al
movzx eax, byte [esp + 0x56]
mov ecx, eax
or ecx, 0x85
and eax, 0x85
xor ecx, 0xffffffff
or eax, ecx
add al, 0x40
mov byte [esp + 0x56], al
movzx eax, byte [esp + 0x57]
mov ecx, eax
or ecx, 0x84
and eax, 0x84
xor ecx, 0xffffffff
or eax, ecx
add al, 0x40
mov byte [esp + 0x57], al
mov ecx, dword [esp + 0x54]
xor edi, edi
cmp edi, dword [0x443550]
jb 0x41350f
jmp 0x413572
mov eax, dword [0x443554]
cmp dword [eax + edi*8], 0xb430e561
sete dl
mov byte [esp + 0x77], dl
test dl, 1
jne 0x413529
jmp 0x413564
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x413564
mov dword [esp + 0x268], ecx
mov ecx, dword [0x443558]
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 fcn.004360a0
mov ecx, dword [esp + 0x268]
test byte [esp + 0x77], 1
je 0x41356d
jmp 0x413572
add edi, 1
jmp 0x413505
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x280], eax
mov al, byte [esp + 0x1ac]
mov byte [esp + 0x22c], al
mov byte [esp + 0x50], 0xc7
mov byte [esp + 0x51], 0xc6
mov byte [esp + 0x52], 0xc5
mov byte [esp + 0x53], 0xc4
movzx eax, byte [esp + 0x50]
mov ecx, eax
or ecx, 0x87
and eax, 0x87
xor ecx, 0xffffffff
or eax, ecx
add al, 0x40
mov byte [esp + 0x50], al
movzx eax, byte [esp + 0x51]
mov ecx, eax
or ecx, 0x86
and eax, 0x86
xor ecx, 0xffffffff
or eax, ecx
add al, 0x40
mov byte [esp + 0x51], al
movzx eax, byte [esp + 0x52]
mov ecx, eax
or ecx, 0x85
and eax, 0x85
xor ecx, 0xffffffff
or eax, ecx
add al, 0x40
mov byte [esp + 0x52], al
movzx eax, byte [esp + 0x53]
mov ecx, eax
or ecx, 0x84
and eax, 0x84
xor ecx, 0xffffffff
or eax, ecx
add al, 0x40
mov byte [esp + 0x53], al
mov ecx, dword [esp + 0x50]
xor edi, edi
cmp edi, dword [0x443550]
jb 0x413626
jmp 0x413689
mov eax, dword [0x443554]
cmp dword [eax + edi*8], 0xb430e561
sete dl
mov byte [esp + 0x76], dl
test dl, 1
jne 0x413640
jmp 0x41367b
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x41367b
mov dword [esp + 0x264], ecx
mov ecx, dword [0x443558]
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 fcn.004360a0
mov ecx, dword [esp + 0x264]
test byte [esp + 0x76], 1
je 0x413684
jmp 0x413689
add edi, 1
jmp 0x41361c
mov edi, dword [esp + 0x2c]
jmp 0x41368f
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.00434cc0
cmp edi, 0
sete al
test al, 1
jne 0x4136b1
jmp 0x4136a7
mov dword [esp], edi
call fcn.00408310
jmp 0x4136b1
cmp dword [esp + 0x3c], 0
sete al
test al, 1
jne 0x4136cb
jmp 0x4136bf
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.00408310
jmp 0x4136cd
mov eax, esi
and eax, 1
shl eax, 1
xor esi, 1
add esi, eax
jmp 0x4113fc
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret