Function at 0x412800
Capabilities:
Contain obfuscated stackstrings

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.00401c00
mov ebx, eax
cmp ebx, 0
jne 0x412828
xor eax, eax
jmp 0x4149dd
xor edi, edi
jmp 0x41282c
mov dword [esp], ebx
call fcn.00402040
cmp edi, eax
jb 0x41283f
mov al, 1
jmp 0x4149dd
mov dword [esp], ebx
mov dword [esp + 4], edi
call fcn.00402050
mov dword [esp + 0x40], eax
mov al, byte [esp + 0x1c4]
mov byte [esp + 0x1dc], al
mov byte [esp + 0x6c], 0xe6
mov byte [esp + 0x6d], 0x74
mov eax, 2
mov byte [esp + eax + 0x6c], 0
add eax, 1
cmp eax, 3
jne 0x41286c
mov dword [esp + 0x4c], edi
mov dword [esp + 0x34], ebx
xor esi, esi
cmp esi, 3
jae 0x4128d9
movzx edx, byte [esp + esi + 0x6c]
mov ecx, 0xd4
sub ecx, esi
mov edi, 0xd4
sub edi, esi
or ecx, edi
or ecx, edx
mov eax, esi
add eax, 0x5d78dd2b
mov ebx, 0xa28722d4
sub ebx, esi
mov edi, ebx
and edi, 0x9d11b4ec
and eax, 0x62ee4b13
or edi, eax
xor edi, edx
or ebx, edx
xor edi, 0xec
and ebx, edi
xor ecx, 0xffffffff
or ebx, ecx
add bl, 0xa8
mov byte [esp + esi + 0x6c], bl
add esi, 1
jmp 0x412883
jmp 0x4128db
lea eax, [esp + 0x6c]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00401f20
cmp eax, 0
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x4c]
je 0x412a41
mov al, byte [esp + 0x1c0]
mov byte [esp + 0x1e0], al
mov byte [esp + 0xd2], 0xec
mov byte [esp + 0xd3], 0x9f
mov byte [esp + 0xd4], 0xc
mov eax, 3
mov byte [esp + eax + 0xd2], 0
add eax, 1
cmp eax, 6
jne 0x412933
xor eax, eax
cmp eax, 6
jae 0x41298f
movzx edx, byte [esp + eax + 0xd2]
mov esi, eax
shl esi, 1
and esi, 0x58d6db4
mov ecx, eax
xor ecx, 0x2c6b6da
add ecx, esi
xor ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0x5e
mov esi, ecx
shl esi, 1
and esi, 0x5e
add esi, 0xd1
sub ecx, esi
add ecx, edx
add cl, 1
mov byte [esp + eax + 0xd2], cl
add eax, 1
jmp 0x412945
lea eax, [esp + 0xd2]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401f20
cmp eax, 0
je 0x412a41
mov al, byte [esp + 0x1bc]
mov byte [esp + 0x1e4], al
mov byte [esp + 0x68], 0xc4
mov byte [esp + 0x69], 0x22
mov eax, 2
mov byte [esp + eax + 0x68], 0
add eax, 1
cmp eax, 3
jne 0x4129d4
xor eax, eax
cmp eax, 3
jae 0x412a13
movzx esi, byte [esp + eax + 0x68]
mov edx, eax
add edx, 0x22538869
mov ecx, edx
shl ecx, 1
sub ecx, eax
add ecx, 0x97
and ecx, esi
or edx, esi
xor ecx, edx
add cl, 0xb8
mov byte [esp + eax + 0x68], cl
add eax, 1
jmp 0x4129e3
lea eax, [esp + 0x68]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401f20
cmp eax, 0
setne al
xor al, 0xff
and al, 1
or al, 0
test al, 1
jne 0x412a41
jmp 0x412a46
jmp 0x4149d5
mov al, byte [esp + 0x1b8]
mov byte [esp + 0x1e8], al
mov byte [esp + 0x46], 0x5d
mov byte [esp + 0x47], 0xa9
xor eax, eax
cmp eax, 2
jae 0x412aca
movzx ecx, byte [esp + eax + 0x46]
mov esi, eax
xor esi, 0xab630b17
mov edx, eax
or edx, 0x549cf4e8
and edx, esi
mov esi, edx
and esi, 0xfffffffd
mov edi, edx
and edi, 2
xor edi, 2
imul edi, esi
mov esi, edx
and esi, 2
or edx, 2
imul edx, esi
add edx, edi
mov ebx, eax
xor ebx, 0x549cf4e8
add ebx, edx
xor ebx, ecx
mov ecx, ebx
shl ecx, 1
and ecx, 0x7e
xor ebx, 0xbf
add ebx, ecx
add bl, 1
mov byte [esp + eax + 0x46], bl
mov ebx, dword [esp + 0x34]
mov ecx, eax
shl ecx, 1
or eax, ecx
xor eax, 1
jmp 0x412a60
lea eax, [esp + 0x46]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401890
mov dword [esp + 0x2b0], eax
mov al, byte [esp + 0x1b4]
mov byte [esp + 0x1ec], al
mov byte [esp + 0xcc], 0x57
mov byte [esp + 0xcd], 0x46
mov byte [esp + 0xce], 0xb3
mov eax, 3
mov byte [esp + eax + 0xcc], 0
add eax, 1
cmp eax, 5
jne 0x412b10
xor eax, eax
cmp eax, 5
jae 0x412b6c
movzx edx, byte [esp + eax + 0xcc]
mov ecx, 0x86
sub ecx, eax
or ecx, edx
mov esi, 0x86
sub esi, eax
mov ebx, eax
add ebx, 0x79
and ebx, 0x71
and esi, 0x8e
or ebx, esi
xor ebx, 0x71
and ebx, edx
xor ecx, 0xffffffff
or ebx, ecx
add bl, 0x38
mov byte [esp + eax + 0xcc], bl
mov ebx, dword [esp + 0x34]
add eax, 1
jmp 0x412b22
lea eax, [esp + 0xcc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.004019c0
fnstcw word [esp + 0x62]
movzx eax, word [esp + 0x62]
or eax, 0xc00
mov word [esp + 0x24a], ax
fldcw word [esp + 0x24a]
fistp dword [esp + 0x2c4]
fldcw word [esp + 0x62]
mov eax, dword [esp + 0x2c4]
mov dword [esp + 0x48], eax
mov al, byte [esp + 0x1b0]
mov byte [esp + 0x1f0], al
mov byte [esp + 0x44], 0x49
mov byte [esp + 0x45], 0xed
xor eax, eax
cmp eax, 2
jae 0x412c13
movzx edx, byte [esp + eax + 0x44]
mov esi, eax
add esi, 0x556add8c
mov ecx, 0x73
sub ecx, eax
and ecx, edx
xor edx, 0xffffffff
and esi, edx
or ecx, esi
add ecx, 0x54a9139f
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
mov byte [esp + eax + 0x44], cl
mov ecx, eax
shl ecx, 1
or eax, ecx
xor eax, 1
jmp 0x412bd0
lea eax, [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.004019c0
fnstcw word [esp + 0x60]
movzx eax, word [esp + 0x60]
or eax, 0xc00
mov word [esp + 0x248], ax
fldcw word [esp + 0x248]
fistp dword [esp + 0x2c0]
fldcw word [esp + 0x60]
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.0040ada0
lea eax, [esp + 0x41c]
lea ecx, [esp + 0x38]
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.0040b530
test al, 1
jne 0x412cbb
mov edi, dword [esp + 0x4c]
jmp 0x4149d5
cmp edi, 0
sete al
mov byte [esp + 0x57], al
test al, 1
jne 0x412cce
jmp 0x413f2f
mov al, byte [esp + 0x1ac]
mov byte [esp + 0x1f4], al
mov byte [esp + 0x64], 0x4d
mov byte [esp + 0x65], 0xfe
mov eax, 2
mov byte [esp + eax + 0x64], 0
add eax, 1
cmp eax, 3
jne 0x412ceb
mov edi, dword [esp + 0x4c]
xor eax, eax
jmp 0x412d00
cmp eax, 3
jae 0x412d44
movzx ecx, byte [esp + eax + 0x64]
mov edi, 0xaa
sub edi, eax
mov edx, 0xaa
sub edx, eax
and edi, edx
mov edx, eax
add edx, 0x55
mov esi, ecx
xor esi, 0xffffffff
or edi, esi
mov esi, edi
add esi, 1
xor edi, 0xffffffff
or edx, edi
mov edi, dword [esp + 0x4c]
or edx, ecx
add edx, esi
add dl, 0x58
mov byte [esp + eax + 0x64], dl
add eax, 1
jmp 0x412d00
lea eax, [esp + 0x64]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401890
cmp eax, 0
je 0x412f73
mov dword [esp + 0x26c], eax
mov dword [esp], eax
call fcn.004149f0
mov dword [esp + 0x24c], eax
add eax, 1
mov ecx, 2
mov dword [esp + 0x268], eax
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412d97
mov ecx, eax
mov dword [esp], ecx
call fcn.00408620
mov esi, eax
xor eax, eax
mov dword [esp], esi
mov eax, dword [esp + 0x268]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x26c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040ada0
xor eax, eax
lea eax, [esp + 0x1a8]
mov dword [esp], 0
mov dword [esp + 4], esi
mov ecx, dword [esp + 0x24c]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
call dword [0x44ae9c]
sub esp, 0x18
mov dword [esp + 0x270], eax
mov cl, byte [esp + 0x1a4]
mov byte [esp + 0x1f8], cl
mov byte [esp + 0x7c], 0x3d
mov byte [esp + 0x7d], 0xdf
mov byte [esp + 0x7e], 0xc0
mov byte [esp + 0x7f], 0x81
mov ecx, 4
mov byte [esp + ecx + 0x7c], 0
add ecx, 1
cmp ecx, 6
jne 0x412e33
mov eax, esi
xor ecx, ecx
cmp ecx, 6
jae 0x412e74
movzx esi, byte [esp + ecx + 0x7c]
mov edi, ecx
add edi, 0xae
or edi, esi
mov edx, ecx
add edx, 0xae
and edx, esi
xor edx, edi
mov edi, dword [esp + 0x4c]
add dl, 0x90
mov byte [esp + ecx + 0x7c], dl
add ecx, 1
jmp 0x412e44
mov ecx, dword [esp + 0x7c]
cmp dword [esp + 0x270], ecx
mov esi, eax
jne 0x412ea5
jmp 0x412e85
mov dword [esp], esi
call fcn.00408630
jmp 0x412e8f
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.0043a020
mov eax, 4
jmp 0x412f5f
mov eax, dword [esp + 0x1a8]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412ec2
mov ecx, eax
mov dword [esp], ecx
call fcn.00408620
mov ecx, dword [0x44ae9c]
mov dword [esp + 0x264], ecx
mov ecx, dword [esp + 0x1a8]
xor edx, edx
mov dword [esp], 0
mov dword [esp + 0x2c], esi
mov dword [esp + 4], esi
mov edx, dword [esp + 0x24c]
mov dword [esp + 8], edx
mov esi, eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
lea eax, [esp + 0x1a8]
mov dword [esp + 0x14], eax
call dword [esp + 0x264]
sub esp, 0x18
cmp eax, 0
jge 0x412f4d
jmp 0x412f20
mov dword [esp], esi
call fcn.00408630
mov esi, dword [esp + 0x2c]
jmp 0x412f2e
jmp 0x412f30
mov dword [esp], esi
call fcn.00408630
jmp 0x412f3a
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.0043a020
mov eax, 4
jmp 0x412f5f
jmp 0x412f4f
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.00408630
xor eax, eax
jmp 0x412f5f
cmp eax, 0
sete cl
test cl, 1
jne 0x4135dd
jmp 0x4135df
call fcn.00408d20
and eax, 0xf
or eax, 0x10
add eax, 0
xor ecx, ecx
lea edx, [esp + 0x3dc]
jmp 0x412f8c
cmp ecx, eax
jb 0x4131c6
mov word [edx], 0
mov al, byte [esp + 0x19c]
mov byte [esp + 0x200], al
mov byte [esp + 0xd8], 0xdc
mov byte [esp + 0xd9], 0xfa
mov byte [esp + 0xda], 0xaf
mov byte [esp + 0xdb], 0xfc
mov byte [esp + 0xdc], 0xb8
mov byte [esp + 0xdd], 0xfe
mov byte [esp + 0xde], 0xa2
mov byte [esp + 0xdf], 0xf0
mov byte [esp + 0xe0], 0xa1
mov byte [esp + 0xe1], 0xf2
mov byte [esp + 0xe2], 0xd6
mov byte [esp + 0xe3], 0xf4
mov byte [esp + 0xe4], 0x99
mov byte [esp + 0xe5], 0xf6
mov byte [esp + 0xe6], 0xf7
mov byte [esp + 0xe7], 8
mov eax, 0x10
mov byte [esp + eax + 0xd8], 0
add eax, 1
cmp eax, 0x12
jne 0x41302c
xor eax, eax
cmp eax, 0x12
jae 0x4130a3
movzx ecx, byte [esp + eax + 0xd8]
mov edi, eax
add edi, 0xb8ee5e71
mov edx, 0x4711a18e
sub edx, eax
mov esi, eax
add esi, 0x38ee5e71
and edx, 0x48833fc2
and esi, 0x48833fc2
xor esi, 0x48833fc2
or edx, esi
xor edi, 0x48833fc2
mov ebx, ecx
xor ebx, 0xc2
or edx, edi
mov esi, edx
xor esi, 0xffffffff
and ebx, esi
xor ecx, 0x3d
and edx, ecx
or ebx, edx
add bl, 0x78
mov byte [esp + eax + 0xd8], bl
add eax, 1
jmp 0x41303e
lea eax, [esp + 0x37c]
lea ecx, [esp + 0xd8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a1a0
lea ecx, [esp + 0x3dc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a1a0
lea edx, [esp + 0x37c]
xor ecx, ecx
sub ecx, edx
add eax, ecx
sar eax, 1
xor ecx, ecx
lea edx, [esp + 0x37c]
lea ecx, [esp + 0x198]
mov dword [esp], 0
mov dword [esp + 4], edx
mov dword [esp + 0x2ac], eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ecx
call dword [0x44ae9c]
sub esp, 0x18
mov cl, byte [esp + 0x194]
mov byte [esp + 0x204], cl
mov byte [esp + 0x5c], 0x19
mov byte [esp + 0x5d], 0x3b
mov byte [esp + 0x5e], 0x3c
mov byte [esp + 0x5f], 0x7d
xor ecx, ecx
mov ebx, dword [esp + 0x34]
cmp ecx, 4
jae 0x4131b1
movzx esi, byte [esp + ecx + 0x5c]
mov edx, ecx
add edx, 0xf0c9d36a
xor edx, esi
mov esi, edx
shl esi, 1
and esi, 0xf362c95e
xor edx, 0x79b164af
add edx, esi
mov esi, edx
xor esi, 0xfffffffe
mov edi, edx
or edi, 1
and edi, esi
mov esi, edi
and esi, 2
xor esi, 2
mov ebx, edi
and ebx, 0xfffffffd
imul ebx, esi
mov esi, edi
and esi, 2
or edi, 2
imul edi, esi
add edi, ebx
mov ebx, dword [esp + 0x34]
mov esi, edx
and esi, edi
or edx, edi
xor edx, 1
add edx, esi
mov byte [esp + ecx + 0x5c], dl
add ecx, 1
jmp 0x41314a
mov ecx, dword [esp + 0x5c]
cmp eax, ecx
mov edi, dword [esp + 0x4c]
jne 0x41329b
jmp 0x4132b3
mov dword [esp + 0x290], edx
mov dword [esp + 0x294], ecx
mov dword [esp + 0x298], eax
call fcn.00408d20
mov cl, byte [esp + 0x1a0]
mov byte [esp + 0x1fc], cl
mov byte [esp + 0x76], 0xc2
mov byte [esp + 0x77], 0xa7
mov byte [esp + 0x78], 0xa8
mov byte [esp + 0x79], 0xa9
mov ecx, 4
mov byte [esp + ecx + 0x76], 0
add ecx, 1
cmp ecx, 6
jne 0x413207
xor ecx, ecx
cmp ecx, 6
jae 0x413259
movzx esi, byte [esp + ecx + 0x76]
mov edx, ecx
add edx, 0x2d3cce16
mov edi, edx
and edi, esi
shl edi, 1
add edx, esi
sub edx, edi
mov ebx, edx
shl ebx, 1
and ebx, 0x9e
xor edx, 0xb0
sub ebx, edx
mov byte [esp + ecx + 0x76], bl
add ecx, 0x23aea221
xor ecx, 0xdc515de0
add ecx, 0x40
jmp 0x413216
mov ecx, dword [esp + 0x76]
cdq
idiv ecx
movsx ecx, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov edx, dword [esp + 0x290]
mov eax, edx
add eax, 2
mov word [edx], cx
mov ecx, dword [esp + 0x294]
sub ecx, 0xe8b9a68c
add ecx, 1
add ecx, 0xe8b9a68c
mov edx, eax
mov eax, dword [esp + 0x298]
jmp 0x412f8c
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.0043a020
xor esi, esi
mov eax, 4
jmp 0x4135d0
mov eax, dword [esp + 0x198]
sub eax, 0xd962556c
add eax, 4
add eax, 0xd962556c
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4132dd
mov ecx, eax
mov dword [esp], ecx
call fcn.00408620
mov esi, dword [0x44ae9c]
mov ecx, dword [esp + 0x198]
xor edx, edx
lea edx, [esp + 0x37c]
mov dword [esp], 0
mov dword [esp + 4], edx
mov edx, dword [esp + 0x2ac]
mov dword [esp + 8], edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
lea eax, [esp + 0x198]
mov dword [esp + 0x14], eax
call esi
sub esp, 0x18
cmp eax, 0
jge 0x41335a
mov esi, dword [esp + 0x2c]
jmp 0x413338
mov dword [esp], esi
call fcn.00408630
jmp 0x413342
mov eax, dword [esp + 0x38]
jmp 0x413348
mov dword [esp], eax
call fcn.0043a020
mov eax, 4
jmp 0x4135d0
mov eax, dword [esp + 0x48]
cmp eax, 0
sete al
mov esi, dword [esp + 0x2c]
jmp 0x41336a
test al, 1
jne 0x413373
jmp 0x413446
mov al, byte [esp + 0x190]
mov byte [esp + 0x208], al
mov byte [esp + 0xc0], 0xee
mov byte [esp + 0xc1], 0xc1
mov byte [esp + 0xc2], 0xa7
mov byte [esp + 0xc3], 0xc3
mov byte [esp + 0xc4], 0xbc
mov byte [esp + 0xc5], 0xc5
mov byte [esp + 0xc6], 0xa3
mov byte [esp + 0xc7], 0xc7
mov byte [esp + 0xc8], 0xc8
mov byte [esp + 0xc9], 0xc9
mov eax, 0xa
mov byte [esp + eax + 0xc0], 0
add eax, 1
cmp eax, 0xc
jne 0x4133d6
xor eax, eax
cmp eax, 0xc
jae 0x41342e
movzx edx, byte [esp + eax + 0xc0]
mov esi, eax
add esi, 0xc0
mov ecx, eax
add ecx, 0xc0
or ecx, esi
and ecx, edx
mov esi, ecx
shl esi, 1
xor esi, 0xffffffff
add ecx, esi
mov esi, eax
add esi, 0xc0
or esi, edx
and ecx, esi
mov esi, dword [esp + 0x2c]
mov byte [esp + eax + 0xc0], cl
add eax, 1
jmp 0x4133e8
lea eax, [esp + 0xc0]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.00414d90
jmp 0x4135cc
mov eax, dword [esp + 0x48]
cmp eax, 1
sete al
jmp 0x413452
test al, 1
jne 0x41345b
jmp 0x413510
mov al, byte [esp + 0x18c]
mov byte [esp + 0x20c], al
mov byte [esp + 0xb0], 0xe9
mov byte [esp + 0xb1], 0x28
mov byte [esp + 0xb2], 0x8d
mov byte [esp + 0xb3], 0x2a
mov byte [esp + 0xb4], 0xb7
mov byte [esp + 0xb5], 0x2c
mov byte [esp + 0xb6], 0xb1
mov byte [esp + 0xb7], 0x2e
mov byte [esp + 0xb8], 0x2f
mov byte [esp + 0xb9], 0x20
jmp 0x4134bb
xor eax, eax
cmp eax, 0xa
jae 0x4134f8
mov dl, byte [esp + eax + 0xb0]
mov esi, eax
shl esi, 1
and esi, 0x9e
mov ecx, eax
xor ecx, 0x4f
add ecx, esi
mov esi, dword [esp + 0x2c]
xor cl, dl
add cl, 0x88
mov byte [esp + eax + 0xb0], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x4134bd
lea eax, [esp + 0xb0]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.00414d90
jmp 0x4135cc
cmp dword [esp + 0x48], 2
jne 0x4135cc
mov al, byte [esp + 0x188]
mov byte [esp + 0x210], al
mov byte [esp + 0xa6], 0x34
mov byte [esp + 0xa7], 0x1b
mov byte [esp + 0xa8], 0x8c
mov byte [esp + 0xa9], 0x1d
mov byte [esp + 0xaa], 0x8d
mov byte [esp + 0xab], 0x1f
mov byte [esp + 0xac], 0xd1
mov byte [esp + 0xad], 1
mov byte [esp + 0xae], 2
mov byte [esp + 0xaf], 3
xor eax, eax
cmp eax, 0xa
jae 0x4135b9
movzx edx, byte [esp + eax + 0xa6]
mov esi, eax
shl esi, 1
and esi, 0x2ebeb094
mov ecx, eax
xor ecx, 0x175f584a
add ecx, esi
mov esi, ecx
and esi, edx
shl esi, 1
add ecx, edx
sub ecx, esi
mov esi, dword [esp + 0x2c]
add cl, 0xb0
mov byte [esp + eax + 0xa6], cl
add eax, 1
jmp 0x41357b
lea eax, [esp + 0xa6]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.00414d90
xor eax, eax
jmp 0x4135d0
cmp eax, 0
sete cl
test cl, 1
jne 0x4135dd
jmp 0x4135df
xor eax, eax
cmp eax, 0
jne 0x4149d5
lea eax, [esp + 0x258]
xor ecx, ecx
mov dword [esp], esi
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.0043dd70
mov dword [esp + 0x250], eax
cmp eax, 0
setge al
test al, 1
mov dword [esp + 0x2c], esi
jne 0x41363f
jmp 0x413782
mov eax, dword [esp + 0x25c]
mov ecx, dword [esp + 0x38]
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.0043e440
mov dword [esp + 0x250], eax
mov eax, dword [esp + 0x258]
mov dword [esp + 0x2a8], eax
mov al, byte [esp + 0x1d8]
mov byte [esp + 0x234], al
mov byte [esp + 0x9a], 0x19
mov byte [esp + 0x9b], 0x18
mov byte [esp + 0x9c], 0x17
mov byte [esp + 0x9d], 0x16
mov eax, 4
mov byte [esp + eax + 0x9a], 0
add eax, 1
cmp eax, 6
jne 0x4136b3
xor eax, eax
cmp eax, 6
jae 0x4136fc
mov dl, byte [esp + eax + 0x9a]
mov esi, eax
shl esi, 1
and esi, 0x6c
mov ecx, eax
xor ecx, 0xb6
add ecx, esi
xor cl, dl
add cl, 0x50
mov byte [esp + eax + 0x9a], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x4136c5
mov eax, dword [esp + 0x9a]
mov dword [esp + 0x288], eax
xor edx, edx
mov esi, dword [esp + 0x2c]
cmp edx, dword [0x44aea0]
jb 0x41371a
jmp 0x413782
mov eax, dword [0x44aea4]
cmp dword [eax + edx*8], 0xb430e561
sete cl
mov byte [esp + 0x54], cl
test cl, 1
jne 0x413734
jmp 0x413774
mov eax, dword [eax + edx*8 + 4]
cmp eax, dword [esp + 0x288]
je 0x413774
mov ecx, dword [0x44aea8]
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 + 0x274], edx
call fcn.0043b9a0
mov edx, dword [esp + 0x274]
test byte [esp + 0x54], 1
je 0x41377d
jmp 0x413782
add edx, 1
jmp 0x413710
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.0043a020
mov dword [esp + 0x38], 0
cmp dword [esp + 0x250], 0
setge al
test al, 1
jne 0x4137b9
jmp 0x4137a7
mov dword [esp + 0x30], 0
mov eax, 4
jmp 0x413f21
mov eax, dword [esp + 0x48]
cmp eax, 1
jne 0x413c00
mov al, byte [esp + 0x184]
mov byte [esp + 0x214], al
mov byte [esp + 0x58], 0x40
mov byte [esp + 0x59], 0x49
mov byte [esp + 0x5a], 0xe8
mov eax, 3
mov byte [esp + eax + 0x58], 0
add eax, 1
cmp eax, 4
jne 0x4137e8
xor eax, eax
cmp eax, 4
jae 0x413822
mov dl, byte [esp + eax + 0x58]
mov esi, eax
xor esi, 0xaa
mov ecx, eax
shl ecx, 1
and ecx, 0xaa
sub ecx, esi
xor cl, dl
add cl, 0x50
mov byte [esp + eax + 0x58], cl
add eax, 1
jmp 0x4137f7
lea eax, [esp + 0x58]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401890
mov dword [esp + 0x16c], eax
mov al, byte [esp + 0x180]
mov byte [esp + 0x218], al
mov byte [esp + 0xba], 0x4d
mov byte [esp + 0xbb], 0x5f
mov byte [esp + 0xbc], 0xee
mov eax, 3
mov esi, dword [esp + 0x2c]
mov byte [esp + eax + 0xba], 0
add eax, 1
cmp eax, 5
jne 0x41386c
xor eax, eax
cmp eax, 5
jae 0x4138f2
mov cl, byte [esp + eax + 0xba]
movzx edx, cl
mov esi, eax
add esi, 0x4391128c
xor esi, edx
xor esi, 0xffffffff
mov edi, eax
add edi, 0x4391128d
mov edx, 0xbc6eed73
sub edx, eax
or edx, esi
add edx, edi
mov esi, edx
and esi, 0xfd
mov edi, edx
and edi, 2
xor edi, 2
imul edi, esi
mov esi, edx
and esi, 2
or edx, 2
imul edx, esi
mov esi, dword [esp + 0x2c]
add edx, edi
mov ebx, eax
sub ebx, edx
add bl, 0x8c
add bl, cl
add bl, 0xa0
mov byte [esp + eax + 0xba], bl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x41387e
lea eax, [esp + 0xba]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401890
mov edi, eax
mov dword [esp], esi
call fcn.00414de0
mov ebx, eax
cmp dword [esp + 0x16c], 0
setne al
xor edx, edx
mov byte [esp + 0x56], al
test al, 1
jne 0x41392c
jmp 0x413940
mov eax, dword [esp + 0x16c]
mov dword [esp], eax
call fcn.00408730
mov edx, eax
add edx, 1
cmp edi, 0
setne al
xor ecx, ecx
mov byte [esp + 0x3f], al
test al, 1
jne 0x413952
jmp 0x41396b
mov dword [esp], edi
mov esi, edi
mov edi, edx
call fcn.00408730
mov edx, edi
mov edi, esi
mov esi, dword [esp + 0x2c]
mov ecx, eax
add ecx, 1
xor ebx, 0xffffffff
sub ebx, 0xffffffff
mov eax, 9
sub eax, ebx
mov dword [esp + 0x2b4], edx
add eax, edx
mov dword [esp + 0x2b8], ecx
xor ecx, 0xffffffff
sub ecx, 0xffffffff
sub eax, ecx
mov ecx, eax
and ecx, 1
or eax, 1
add eax, ecx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4139b0
mov ecx, eax
mov dword [esp], ecx
call fcn.00408620
mov dword [esp + 0x30], eax
mov al, byte [esp + 0x17c]
mov byte [esp + 0x21c], al
mov byte [esp + 0xea], 0x4b
mov byte [esp + 0xeb], 0x3a
mov byte [esp + 0xec], 0x4e
mov byte [esp + 0xed], 0x3c
mov byte [esp + 0xee], 0x43
mov byte [esp + 0xef], 0x3e
mov byte [esp + 0xf0], 0x5b
mov byte [esp + 0xf1], 0x30
mov byte [esp + 0xf2], 0x4d
mov byte [esp + 0xf3], 0x32
mov byte [esp + 0xf4], 0x4f
mov byte [esp + 0xf5], 0x34
mov byte [esp + 0xf6], 6
mov byte [esp + 0xf7], 0x36
mov byte [esp + 0xf8], 5
mov byte [esp + 0xf9], 0x48
mov byte [esp + 0xfa], 0x49
mov byte [esp + 0xfb], 0x4a
mov eax, 0x12
mov byte [esp + eax + 0xea], 0
add eax, 1
cmp eax, 0x13
jne 0x413a5f
mov dword [esp + 0x2bc], edi
xor eax, eax
cmp eax, 0x13
jae 0x413b17
movzx edx, byte [esp + eax + 0xea]
mov edi, eax
add edi, 0x16c6ceb1
mov esi, edx
shl esi, 1
xor esi, 0xffffffff
add esi, edx
mov ecx, edx
and ecx, 0x54
and esi, 0xab
or ecx, esi
xor ecx, edx
mov ebx, 0x139314e
sub ebx, eax
and ebx, 0x31462ad
and edi, 0xfceb9d52
or ebx, edi
xor ecx, 0x54
and ecx, edx
xor ebx, 0xfceb9d52
or ecx, ebx
mov esi, ecx
shl esi, 1
xor esi, 0xffffffff
add ecx, esi
mov esi, 0x4e
sub esi, eax
and esi, edx
or ecx, esi
mov edx, ecx
add edx, 1
mov esi, ecx
xor esi, 0xffffffff
or esi, 0x77
add edx, esi
mov esi, ecx
and esi, 0x88
mov edi, ecx
xor edi, 0x77
add ecx, edi
sub ecx, esi
mov esi, dword [esp + 0x2c]
add edx, ecx
add dl, 1
mov byte [esp + eax + 0xea], dl
add eax, 1
jmp 0x413a78
lea eax, [esp + 0xea]
mov ecx, dword [esp + 0x30]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040a1a0
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], esi
call fcn.0040a1a0
mov edi, eax
add edi, 2
mov word [eax], 0x22
cmp esi, 0
je 0x413b64
mov dword [esp], esi
call fcn.00408630
test byte [esp + 0x56], 1
jne 0x413b75
mov ebx, dword [esp + 0x34]
mov al, byte [esp + 0x3f]
jmp 0x413bb5
mov ebx, edi
add ebx, 2
mov word [edi], 0x2c
xor eax, eax
mov dword [esp], ebx
mov eax, dword [esp + 0x2b4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040ada0
shl eax, 1
add ebx, eax
mov edi, ebx
mov ebx, dword [esp + 0x34]
mov al, byte [esp + 0x3f]
test al, 1
jne 0x413bbb
jmp 0x413bed
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 + 0x2bc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040ada0
mov edi, dword [esp + 0x4c]
xor esi, esi
mov dword [esp + 0x48], 0
jmp 0x413f1f
cmp eax, 2
sete al
mov dword [esp + 0x30], 0
test al, 1
jne 0x413c17
jmp 0x413f1f
mov dword [esp], esi
call fcn.00414de0
xor ecx, ecx
sub ecx, eax
add ecx, 0xffffffe3
xor eax, eax
sub eax, ecx
add eax, 0xe546b911
add eax, 1
sub eax, 0xe546b911
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x413c50
mov ecx, eax
mov dword [esp], ecx
call fcn.00408620
mov dword [esp + 0x30], eax
mov al, byte [esp + 0x178]
mov byte [esp + 0x220], al
mov byte [esp + 0x70], 0xaf
mov byte [esp + 0x71], 0xce
mov byte [esp + 0x72], 0xcf
mov byte [esp + 0x73], 0xc0
mov eax, 4
mov byte [esp + eax + 0x70], 0
add eax, 1
cmp eax, 5
jne 0x413c83
xor eax, eax
cmp eax, 5
jae 0x413cc7
mov dl, byte [esp + eax + 0x70]
mov esi, 0x1a
sub esi, eax
and esi, 0xb6
mov ecx, 0x1a
sub ecx, eax
and ecx, 0x49
or ecx, esi
mov esi, dword [esp + 0x2c]
xor cl, dl
mov dl, 0xd7
sub dl, cl
mov byte [esp + eax + 0x70], dl
add eax, 1
jmp 0x413c92
mov al, byte [esp + 0x174]
mov byte [esp + 0x224], al
mov byte [esp + 0xfe], 0x9c
mov byte [esp + 0xff], 0x2d
mov byte [esp + 0x100], 0x81
mov byte [esp + 0x101], 0x2f
mov byte [esp + 0x102], 0x87
mov byte [esp + 0x103], 0x31
mov byte [esp + 0x104], 0x97
mov byte [esp + 0x105], 0x33
mov byte [esp + 0x106], 0x86
mov byte [esp + 0x107], 0x35
mov byte [esp + 0x108], 0x85
mov byte [esp + 0x109], 0x37
mov byte [esp + 0x10a], 0x90
mov byte [esp + 0x10b], 0x39
mov byte [esp + 0x10c], 0x9f
mov byte [esp + 0x10d], 0x3b
mov byte [esp + 0x10e], 0x90
mov byte [esp + 0x10f], 0x3d
mov byte [esp + 0x110], 0x92
mov byte [esp + 0x111], 0x3f
mov byte [esp + 0x112], 0xe0
mov byte [esp + 0x113], 1
mov byte [esp + 0x114], 0xef
mov byte [esp + 0x115], 3
mov byte [esp + 0x116], 0xa1
mov byte [esp + 0x117], 5
mov byte [esp + 0x118], 0xbe
mov byte [esp + 0x119], 7
mov byte [esp + 0x11a], 0xad
mov byte [esp + 0x11b], 9
mov byte [esp + 0x11c], 0xa9
mov byte [esp + 0x11d], 0xb
mov byte [esp + 0x11e], 0xec
mov byte [esp + 0x11f], 0xd
mov byte [esp + 0x120], 0xac
mov byte [esp + 0x121], 0xf
mov byte [esp + 0x122], 0xa9
mov byte [esp + 0x123], 0x11
mov byte [esp + 0x124], 0xa2
mov byte [esp + 0x125], 0x13
mov byte [esp + 0x126], 0xb5
mov byte [esp + 0x127], 0x15
mov byte [esp + 0x128], 0xa5
mov byte [esp + 0x129], 0x17
mov byte [esp + 0x12a], 0xab
mov byte [esp + 0x12b], 0x19
mov byte [esp + 0x12c], 0xfa
mov byte [esp + 0x12d], 0x1b
mov byte [esp + 0x12e], 0xf1
mov byte [esp + 0x12f], 0x1d
mov byte [esp + 0x130], 0xb8
mov byte [esp + 0x131], 0x1f
mov byte [esp + 0x132], 0
mov byte [esp + 0x133], 0xe1
mov byte [esp + 0x134], 0
mov byte [esp + 0x135], 0xe3
mov byte [esp + 0x136], 0xe4
mov byte [esp + 0x137], 0xe5
xor eax, eax
cmp eax, 0x3a
jae 0x413ee2
mov dl, byte [esp + eax + 0xfe]
mov ecx, eax
add ecx, 0x4c
mov esi, 0x33
sub esi, eax
and esi, 0x2d
and ecx, 0xd2
or ecx, esi
mov esi, dword [esp + 0x2c]
xor cl, dl
xor cl, 0x2d
add cl, 0xa0
mov byte [esp + eax + 0xfe], cl
add eax, 1
jmp 0x413ea7
lea eax, [esp + 0xfe]
mov ecx, dword [esp + 0x30]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040a1a0
mov dword [esp], eax
mov dword [esp + 4], esi
call fcn.0040a1a0
lea ecx, [esp + 0x70]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a1a0
mov dword [esp + 0x48], 2
jmp 0x413f1f
xor eax, eax
cmp eax, 0
je 0x414233
jmp 0x4149d5
cmp edi, 1
sete al
mov ecx, dword [esp + 0x48]
sub ecx, 2
sete cl
and al, cl
mov dword [esp + 0x30], 0
test al, 1
mov edi, dword [esp + 0x4c]
jne 0x413f58
xor esi, esi
jmp 0x414233
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.004149f0
mov ebx, eax
add ebx, 1
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x413f81
mov ecx, eax
mov dword [esp], ecx
call fcn.00408620
mov esi, eax
mov eax, dword [esp + 0x38]
xor ecx, ecx
mov dword [esp], esi
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040ada0
mov ecx, dword [esp + 0x25c]
mov eax, ecx
and eax, 0x18
shl eax, 1
xor ecx, 0x18
add ecx, eax
mov eax, ecx
and eax, 1
or ecx, 1
add eax, ecx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x413fdc
mov ecx, eax
mov dword [esp], ecx
call fcn.00408620
mov dword [esp + 0x30], eax
mov al, byte [esp + 0x170]
mov byte [esp + 0x228], al
mov byte [esp + 0x138], 0x89
mov byte [esp + 0x139], 0xfa
mov byte [esp + 0x13a], 0x84
mov byte [esp + 0x13b], 0xfc
mov byte [esp + 0x13c], 0x8a
mov byte [esp + 0x13d], 0xfe
mov byte [esp + 0x13e], 0x9a
mov byte [esp + 0x13f], 0xf0
mov byte [esp + 0x140], 0x83
mov byte [esp + 0x141], 0xf2
mov byte [esp + 0x142], 0x80
mov byte [esp + 0x143], 0xf4
mov byte [esp + 0x144], 0x8d
mov byte [esp + 0x145], 0xf6
mov byte [esp + 0x146], 0x92
mov byte [esp + 0x147], 8
mov byte [esp + 0x148], 0x75
mov byte [esp + 0x149], 0xa
mov byte [esp + 0x14a], 0x77
mov byte [esp + 0x14b], 0xc
mov byte [esp + 0x14c], 0x2d
mov byte [esp + 0x14d], 0xe
mov byte [esp + 0x14e], 0x32
mov byte [esp + 0x14f], 0
mov byte [esp + 0x150], 0x64
mov byte [esp + 0x151], 2
mov byte [esp + 0x152], 0x8b
mov byte [esp + 0x153], 4
mov byte [esp + 0x154], 0x60
mov byte [esp + 0x155], 6
mov byte [esp + 0x156], 0x64
mov byte [esp + 0x157], 0x18
mov byte [esp + 0x158], 0x39
mov byte [esp + 0x159], 0x1a
mov byte [esp + 0x15a], 0x79
mov byte [esp + 0x15b], 0x1c
mov byte [esp + 0x15c], 0x94
mov byte [esp + 0x15d], 0x1e
mov byte [esp + 0x15e], 0x6f
mov byte [esp + 0x15f], 0x10
mov byte [esp + 0x160], 0x70
mov byte [esp + 0x161], 0x12
mov byte [esp + 0x162], 0x60
mov byte [esp + 0x163], 0x14
mov byte [esp + 0x164], 0x66
mov byte [esp + 0x165], 0x16
mov byte [esp + 0x166], 0x37
mov byte [esp + 0x167], 0x28
mov byte [esp + 0x168], 0x29
mov byte [esp + 0x169], 0x2a
mov eax, 0x32
mov ebx, dword [esp + 0x34]
mov byte [esp + eax + 0x138], 0
add eax, 1
cmp eax, 0x34
jne 0x41418f
xor eax, eax
cmp eax, 0x34
jae 0x414202
movzx ecx, byte [esp + eax + 0x138]
mov dword [esp + 0x260], ecx
mov edx, esi
mov esi, eax
shl esi, 1
and esi, 0x5daeae2
mov ecx, eax
xor ecx, 0x82ed7571
add ecx, esi
mov esi, edx
xor ecx, dword [esp + 0x260]
mov edx, ecx
and edx, 0x176bab89
xor edx, 0x176bab89
and ecx, 0xe8945476
sub ecx, edx
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
mov byte [esp + eax + 0x138], cl
add eax, 1
jmp 0x4141a1
lea eax, [esp + 0x138]
mov ecx, dword [esp + 0x30]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040a1a0
mov dword [esp], eax
mov dword [esp + 4], esi
call fcn.0040a1a0
mov dword [esp], esi
call fcn.00408630
jmp 0x41422f
xor esi, esi
jmp 0x414233
mov ecx, dword [esp + 0x48]
test ecx, ecx
je 0x414258
jmp 0x41423d
mov eax, ecx
sub eax, 1
je 0x414433
jmp 0x41424a
sub ecx, 2
je 0x4146cc
jmp 0x41499c
test byte [esp + 0x57], 1
jne 0x414264
jmp 0x414433
lea eax, [esp + 0x338]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x44
call fcn.004086a0
mov dword [esp + 0x338], 0x44
mov eax, dword [0x449e94]
mov dword [esp], eax
mov dword [esp + 4], 0x755f867b
call fcn.0043d470
cmp eax, 0
setne cl
test cl, 1
jne 0x4142b0
test cl, 1
jne 0x4142b7
xor eax, eax
xor ecx, ecx
lea ecx, [esp + 0x338]
lea edx, [esp + 0x2e4]
mov dword [esp + 0x2c], esi
mov dword [esp], esi
mov esi, dword [esp + 0x30]
mov dword [esp + 4], esi
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 0x41442a
mov eax, dword [esp + 0x2e4]
mov dword [esp + 0x29c], eax
mov al, byte [esp + 0x1d4]
mov byte [esp + 0x238], al
mov byte [esp + 0x94], 0x19
mov byte [esp + 0x95], 0x18
mov byte [esp + 0x96], 0x17
mov byte [esp + 0x97], 0x16
mov eax, 4
mov byte [esp + eax + 0x94], 0
add eax, 1
cmp eax, 6
jne 0x41435d
xor eax, eax
mov esi, dword [esp + 0x2c]
cmp eax, 6
jae 0x4143ae
mov dl, byte [esp + eax + 0x94]
mov ebx, esi
mov esi, eax
shl esi, 1
and esi, 0x6c
mov ecx, eax
xor ecx, 0xb6
add ecx, esi
mov esi, ebx
xor cl, dl
add cl, 0x50
mov byte [esp + eax + 0x94], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x414373
mov ecx, dword [esp + 0x94]
xor ebx, ebx
cmp ebx, dword [0x44aea0]
jb 0x4143c1
jmp 0x414426
mov eax, dword [0x44aea4]
cmp dword [eax + ebx*8], 0xb430e561
sete dl
test dl, 1
jne 0x4143d7
jmp 0x41441a
mov eax, dword [eax + ebx*8 + 4]
cmp eax, ecx
je 0x41441a
mov dword [esp + 0x278], ecx
mov ecx, dword [0x44aea8]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x29c]
mov dword [esp + 0xc], eax
mov byte [esp + 0x50], dl
call fcn.0043b9a0
mov dl, byte [esp + 0x50]
mov ecx, dword [esp + 0x278]
test dl, 1
je 0x414421
jmp 0x414426
add ebx, 1
jmp 0x4143b7
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x2c]
jmp 0x41499c
call fcn.00414e00
mov eax, dword [0x449e94]
mov dword [esp], eax
mov dword [esp + 4], 0x4e0c8565
call fcn.0043d470
test eax, eax
setne cl
mov ecx, dword [esp + 0x38]
xor edx, edx
lea edx, [0x422790]
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
cmp eax, 0
setne cl
test cl, 1
jne 0x41449a
jmp 0x4146c7
mov dword [esp + 0x2cc], 0xffffffff
mov dword [esp + 0x2c8], 0xdc3cba00
mov cl, byte [esp + 0x22c]
mov byte [esp + 0x230], cl
mov byte [esp + 0xa0], 0x19
mov byte [esp + 0xa1], 0x18
mov byte [esp + 0xa2], 0x17
mov byte [esp + 0xa3], 0x16
mov ecx, 4
mov byte [esp + ecx + 0xa0], 0
add ecx, 1
cmp ecx, 6
jne 0x4144e3
mov dword [esp + 0x254], eax
xor eax, eax
cmp eax, 6
jae 0x414537
mov dl, byte [esp + eax + 0xa0]
mov ebx, esi
mov esi, eax
shl esi, 1
and esi, 0x6c
mov ecx, eax
xor ecx, 0xb6
add ecx, esi
mov esi, ebx
xor cl, dl
add cl, 0x50
mov byte [esp + eax + 0xa0], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x4144fc
mov ecx, dword [esp + 0xa0]
xor ebx, ebx
cmp ebx, dword [0x44aea0]
jb 0x41454a
jmp 0x4145c7
mov eax, dword [0x44aea4]
cmp dword [eax + ebx*8], 0xa67d73aa
sete dl
test dl, 1
jne 0x414560
jmp 0x4145b8
mov eax, dword [eax + ebx*8 + 4]
cmp eax, ecx
je 0x4145b8
mov dword [esp + 0x28c], ecx
mov ecx, dword [0x44aea8]
mov byte [esp + 0x55], dl
xor edx, edx
lea edx, [esp + 0x2c8]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0xc
mov eax, dword [esp + 0x254]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
call fcn.0043b9a0
mov dl, byte [esp + 0x55]
mov ecx, dword [esp + 0x28c]
test dl, 1
je 0x4145bf
jmp 0x4145c7
add ebx, 1
jmp 0x414540
mov al, byte [esp + 0x1d0]
mov byte [esp + 0x23c], al
mov byte [esp + 0x8e], 0x19
mov byte [esp + 0x8f], 0x18
mov byte [esp + 0x90], 0x17
mov byte [esp + 0x91], 0x16
mov eax, 4
mov byte [esp + eax + 0x8e], 0
add eax, 1
cmp eax, 6
jne 0x4145fa
mov dword [esp + 0x2c], esi
xor eax, eax
cmp eax, 6
jae 0x414647
mov dl, byte [esp + eax + 0x8e]
mov esi, eax
shl esi, 1
and esi, 0x6c
mov ecx, eax
xor ecx, 0xb6
add ecx, esi
xor cl, dl
add cl, 0x50
mov byte [esp + eax + 0x8e], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x414610
mov ecx, dword [esp + 0x8e]
xor ebx, ebx
mov esi, dword [esp + 0x2c]
cmp ebx, dword [0x44aea0]
jb 0x41465e
jmp 0x4146c3
mov eax, dword [0x44aea4]
cmp dword [eax + ebx*8], 0xb430e561
sete dl
test dl, 1
jne 0x414674
jmp 0x4146b7
mov eax, dword [eax + ebx*8 + 4]
cmp eax, ecx
je 0x4146b7
mov dword [esp + 0x27c], ecx
mov ecx, dword [0x44aea8]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x254]
mov dword [esp + 0xc], eax
mov byte [esp + 0x51], dl
call fcn.0043b9a0
mov dl, byte [esp + 0x51]
mov ecx, dword [esp + 0x27c]
test dl, 1
je 0x4146be
jmp 0x4146c3
add ebx, 1
jmp 0x414654
mov ebx, dword [esp + 0x34]
jmp 0x41499c
lea eax, [esp + 0x2f4]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x44
call fcn.004086a0
mov dword [esp + 0x2f4], 0x44
mov eax, dword [0x449e94]
mov dword [esp], eax
mov dword [esp + 4], 0x755f867b
call fcn.0043d470
cmp eax, 0
setne cl
test cl, 1
jne 0x414718
test cl, 1
jne 0x41471f
xor eax, eax
xor ecx, ecx
lea edx, [esp + 0x2d4]
mov dword [esp], 0
mov ecx, dword [esp + 0x30]
mov dword [esp + 4], ecx
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
lea ecx, [esp + 0x2f4]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
call eax
sub esp, 0x28
jmp 0x41477d
cmp eax, 0
je 0x41499c
mov eax, dword [esp + 0x2d8]
mov dword [esp + 0x2a4], eax
mov al, byte [esp + 0x1cc]
mov byte [esp + 0x240], al
mov byte [esp + 0x88], 0x19
mov byte [esp + 0x89], 0x18
mov byte [esp + 0x8a], 0x17
mov byte [esp + 0x8b], 0x16
mov eax, 4
mov byte [esp + eax + 0x88], 0
add eax, 1
cmp eax, 6
jne 0x4147c7
mov dword [esp + 0x2c], esi
xor eax, eax
cmp eax, 6
jae 0x414814
mov dl, byte [esp + eax + 0x88]
mov esi, eax
shl esi, 1
and esi, 0x6c
mov ecx, eax
xor ecx, 0xb6
add ecx, esi
xor cl, dl
add cl, 0x50
mov byte [esp + eax + 0x88], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x4147dd
mov ecx, dword [esp + 0x88]
xor ebx, ebx
mov esi, dword [esp + 0x2c]
cmp ebx, dword [0x44aea0]
jb 0x41482b
jmp 0x414890
mov eax, dword [0x44aea4]
cmp dword [eax + ebx*8], 0xb430e561
sete dl
test dl, 1
jne 0x414841
jmp 0x414884
mov eax, dword [eax + ebx*8 + 4]
cmp eax, ecx
je 0x414884
mov dword [esp + 0x284], ecx
mov ecx, dword [0x44aea8]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x2a4]
mov dword [esp + 0xc], eax
mov byte [esp + 0x53], dl
call fcn.0043b9a0
mov dl, byte [esp + 0x53]
mov ecx, dword [esp + 0x284]
test dl, 1
je 0x41488b
jmp 0x414890
add ebx, 1
jmp 0x414821
mov eax, dword [esp + 0x2d4]
mov dword [esp + 0x2a0], eax
mov al, byte [esp + 0x1c8]
mov byte [esp + 0x244], al
mov byte [esp + 0x82], 0x19
mov byte [esp + 0x83], 0x18
mov byte [esp + 0x84], 0x17
mov byte [esp + 0x85], 0x16
mov eax, 4
mov byte [esp + eax + 0x82], 0
add eax, 1
cmp eax, 6
jne 0x4148d1
xor eax, eax
cmp eax, 6
jae 0x41491e
mov dl, byte [esp + eax + 0x82]
mov esi, eax
shl esi, 1
and esi, 0x6c
mov ecx, eax
xor ecx, 0xb6
add ecx, esi
mov esi, dword [esp + 0x2c]
xor cl, dl
add cl, 0x50
mov byte [esp + eax + 0x82], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x4148e3
mov ecx, dword [esp + 0x82]
xor ebx, ebx
cmp ebx, dword [0x44aea0]
jb 0x414931
jmp 0x414996
mov eax, dword [0x44aea4]
cmp dword [eax + ebx*8], 0xb430e561
sete dl
test dl, 1
jne 0x414947
jmp 0x41498a
mov eax, dword [eax + ebx*8 + 4]
cmp eax, ecx
je 0x41498a
mov dword [esp + 0x280], ecx
mov ecx, dword [0x44aea8]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x2a0]
mov dword [esp + 0xc], eax
mov byte [esp + 0x52], dl
call fcn.0043b9a0
mov dl, byte [esp + 0x52]
mov ecx, dword [esp + 0x280]
test dl, 1
je 0x414991
jmp 0x414996
add ebx, 1
jmp 0x414927
mov ebx, dword [esp + 0x34]
jmp 0x41499c
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.0043a020
cmp esi, 0
je 0x4149b7
mov dword [esp], esi
call fcn.00408630
jmp 0x4149b7
cmp dword [esp + 0x30], 0
sete al
test al, 1
jne 0x4149d3
jmp 0x4149c5
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00408630
jmp 0x4149d3
jmp 0x4149d5
add edi, 1
jmp 0x41282c
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret