Function at 0x413a60
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x840
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00401bf0
mov esi, eax
cmp esi, 0
jne 0x413a88
xor eax, eax
jmp 0x415bf6
xor ebx, ebx
jmp 0x413a8c
mov dword [esp], esi
call fcn.00402030
cmp ebx, eax
setb al
test al, 1
jne 0x413aa6
jmp 0x413a9f
mov al, 1
jmp 0x415bf6
mov dword [esp], esi
mov dword [esp + 4], ebx
call fcn.00402040
mov dword [esp + 0x38], eax
mov al, byte [esp + 0xdc]
mov byte [esp + 0x11c], al
mov byte [esp + 0x28c], 0x67
mov byte [esp + 0x28d], 0x9b
mov eax, 2
mov byte [esp + eax + 0x28c], 0
add eax, 1
cmp eax, 7
jne 0x413ad9
mov dword [esp + 0x2c], ebx
xor eax, eax
cmp eax, 7
jae 0x413b40
movzx ecx, byte [esp + eax + 0x28c]
mov edx, eax
add edx, 0xc5e0e5b
xor edx, ecx
mov ebx, edx
add ebx, 0x38
mov ecx, edx
and ecx, 1
mov edi, 0x3dd647c7
sub edi, edx
mov edx, edi
and edx, 0xd5
and ebx, 0x2a
or edx, ebx
and edi, 1
xor edi, 1
or edx, edi
xor edx, 0xd4
add ecx, edx
mov byte [esp + eax + 0x28c], cl
add eax, 1
jmp 0x413aef
lea eax, [esp + 0x28c]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00401f10
cmp eax, 0
mov ebx, dword [esp + 0x2c]
je 0x413c9f
mov al, byte [esp + 0xd8]
mov byte [esp + 0x120], al
mov byte [esp + 0x258], 0xe
mov byte [esp + 0x259], 0x1f
mov byte [esp + 0x25a], 0x6a
mov eax, 3
mov byte [esp + eax + 0x258], 0
add eax, 1
cmp eax, 6
jne 0x413b97
xor eax, eax
cmp eax, 6
jae 0x413bcb
mov cl, byte [esp + eax + 0x258]
mov dl, al
add dl, 0xe7
xor dl, cl
add dl, 0x7d
mov byte [esp + eax + 0x258], dl
add eax, 1
jmp 0x413ba9
lea eax, [esp + 0x258]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401f10
cmp eax, 0
je 0x413c9f
mov al, byte [esp + 0xd4]
mov byte [esp + 0x124], al
mov byte [esp + 0x284], 0x5b
mov byte [esp + 0x285], 0x3f
mov eax, 2
mov byte [esp + eax + 0x284], 0
add eax, 1
cmp eax, 7
jne 0x413c16
xor eax, eax
cmp eax, 7
jae 0x413c72
movzx ecx, byte [esp + eax + 0x284]
mov edi, eax
shl edi, 1
and edi, 0xbb1a8a6a
mov ebx, eax
shl ebx, 1
and ebx, 0xbb1a8a6a
add ebx, 0xa272bacb
mov edx, eax
sub edx, ebx
mov ebx, dword [esp + 0x2c]
add edx, edi
mov edi, edx
and edi, ecx
shl edi, 1
add edx, ecx
sub edx, edi
add dl, 0xf7
mov byte [esp + eax + 0x284], dl
add eax, 1
jmp 0x413c28
lea eax, [esp + 0x284]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401f10
cmp eax, 0
setne al
xor al, 0xff
test al, 1
jne 0x413ca3
jmp 0x413ca8
jmp 0x413ca1
jmp 0x413ca3
jmp 0x415bee
mov al, byte [esp + 0xd0]
mov byte [esp + 0x128], al
mov byte [esp + 0x4c], 0xbb
mov byte [esp + 0x4d], 0x4f
mov eax, 2
mov byte [esp + eax + 0x4c], 0
add eax, 1
cmp eax, 4
jne 0x413cc5
xor eax, eax
cmp eax, 4
jae 0x413cf0
mov cl, byte [esp + eax + 0x4c]
mov dl, al
add dl, 0x8d
xor dl, cl
add dl, 0x3f
mov byte [esp + eax + 0x4c], dl
add eax, 1
jmp 0x413cd4
lea eax, [esp + 0x4c]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401880
mov dword [esp + 0x2d8], eax
mov al, byte [esp + 0xcc]
mov byte [esp + 0x12c], al
mov byte [esp + 0x250], 0x1e
mov byte [esp + 0x251], 0x2f
mov byte [esp + 0x252], 0xba
mov eax, 3
mov byte [esp + eax + 0x250], 0
add eax, 1
cmp eax, 5
jne 0x413d36
xor eax, eax
cmp eax, 5
jae 0x413d9e
movzx edi, byte [esp + eax + 0x250]
mov edx, 0xae1a1420
sub edx, eax
or edx, edi
mov ecx, 0x20
sub ecx, eax
mov ebx, 0x20
sub ebx, eax
or ecx, ebx
and ecx, edi
xor edx, 0xffffffff
or ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0xcd04c948
mov edi, ecx
and edi, edx
shl edi, 1
xor ecx, edx
xor ecx, 0xa4
add ecx, edi
add cl, 1
mov byte [esp + eax + 0x250], cl
add eax, 1
jmp 0x413d48
lea eax, [esp + 0x250]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.004019b0
fnstcw word [esp + 0x52]
movzx eax, word [esp + 0x52]
or eax, 0xc00
mov word [esp + 0x18e], ax
fldcw word [esp + 0x18e]
fistp dword [esp + 0x2e4]
fldcw word [esp + 0x52]
mov ecx, dword [esp + 0x2e4]
mov al, byte [esp + 0xc8]
mov byte [esp + 0x130], al
mov byte [esp + 0x27c], 0x85
mov byte [esp + 0x27d], 0x19
mov eax, 2
mov byte [esp + eax + 0x27c], 0
add eax, 1
cmp eax, 6
jne 0x413e07
mov dword [esp + 0x48], ecx
xor eax, eax
cmp eax, 6
jae 0x413e4b
movzx edx, byte [esp + eax + 0x27c]
mov ecx, eax
add ecx, 0xcee0f886
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
add cl, 0x62
mov byte [esp + eax + 0x27c], cl
add eax, 1
jmp 0x413e1d
lea eax, [esp + 0x27c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.004019b0
fnstcw word [esp + 0x50]
movzx eax, word [esp + 0x50]
or eax, 0xc00
mov word [esp + 0x18c], ax
fldcw word [esp + 0x18c]
fistp dword [esp + 0x2e0]
fldcw word [esp + 0x50]
mov edi, dword [esp + 0x2e0]
lea eax, [esp + 0x43c]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0x400
mov eax, dword [esp + 0x2d8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040bfb0
lea eax, [esp + 0x43c]
lea ecx, [esp + 0x34]
lea edx, [esp + 0x278]
xor ebx, ebx
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.0040c6b0
test al, 1
jne 0x413ef6
mov ebx, dword [esp + 0x2c]
jmp 0x415bec
mov ebx, dword [esp + 0x2c]
cmp edi, 0
sete al
mov ecx, dword [esp + 0x48]
jmp 0x413f06
test al, 1
mov byte [esp + 0x43], al
jne 0x413f13
jmp 0x415065
mov al, byte [esp + 0xc4]
mov byte [esp + 0x134], al
mov byte [esp + 0x270], 0xe8
mov byte [esp + 0x271], 0x99
mov eax, 2
mov byte [esp + eax + 0x270], 0
add eax, 1
cmp eax, 7
jne 0x413f36
xor eax, eax
cmp eax, 7
jae 0x413fc3
movzx edx, byte [esp + eax + 0x270]
mov ecx, eax
add ecx, 0xdbcad19a
or ecx, edx
mov edi, 0x65
sub edi, eax
mov ebx, edx
xor ebx, 0xffffffff
or edi, ebx
mov ebx, 0x65
sub ebx, eax
xor edx, 0xffffffff
or ebx, edx
and ebx, edi
add ecx, ebx
mov ebx, ecx
add ebx, 0x7e
mov edx, 1
sub edx, ecx
mov edi, 0x4af61801
sub edi, ecx
mov ecx, edi
and ecx, 0x97
and ebx, 0x68
or ecx, ebx
mov ebx, dword [esp + 0x2c]
and edi, 1
xor edi, 1
or ecx, edi
xor ecx, 0x96
and edx, 1
xor edx, 1
add edx, ecx
mov byte [esp + eax + 0x270], dl
add eax, 1
jmp 0x413f48
lea eax, [esp + 0x270]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401880
cmp eax, 0
setne cl
test cl, 1
jne 0x413fea
jmp 0x4141e8
mov dword [esp + 0x298], eax
mov dword [esp], eax
call fcn.00415c10
mov dword [esp + 0x260], eax
sub eax, 0xffffffff
mov ecx, 2
mov edi, eax
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x41401b
mov ecx, eax
mov dword [esp], ecx
call fcn.00409860
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], edi
mov ecx, dword [esp + 0x298]
mov dword [esp + 8], ecx
mov edi, eax
mov dword [esp + 0xc], 0
call fcn.0040bfb0
xor eax, eax
lea eax, [esp + 0xc0]
mov dword [esp], 0
mov dword [esp + 0x28], edi
mov dword [esp + 4], edi
mov ecx, dword [esp + 0x260]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
call dword [0x44d10c]
sub esp, 0x18
mov cl, byte [esp + 0xb4]
mov byte [esp + 0x138], cl
mov byte [esp + 0xb8], 0x7f
mov byte [esp + 0xb9], 0x19
mov byte [esp + 0xba], 0x1e
mov byte [esp + 0xbb], 0xdf
mov ecx, 4
mov byte [esp + ecx + 0xb8], 0
add ecx, 1
cmp ecx, 5
jne 0x4140b9
xor ecx, ecx
cmp ecx, 5
jae 0x4140ed
mov dl, byte [esp + ecx + 0xb8]
mov dh, cl
add dh, 0x3a
xor dh, dl
add dh, 0xde
mov byte [esp + ecx + 0xb8], dh
add ecx, 1
jmp 0x4140cb
mov ecx, dword [esp + 0xb8]
cmp eax, ecx
jne 0x414120
jmp 0x4140fa
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00409870
jmp 0x414108
jmp 0x41410a
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.0043b290
mov eax, 4
jmp 0x4141da
mov eax, dword [esp + 0xc0]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x41413d
mov ecx, eax
mov dword [esp], ecx
call fcn.00409860
mov ecx, dword [0x44d10c]
mov dword [esp + 0x294], ecx
mov ecx, dword [esp + 0xc0]
xor edx, edx
mov dword [esp], 0
mov edx, dword [esp + 0x28]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x260]
mov dword [esp + 8], edx
mov edi, eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
lea eax, [esp + 0xc0]
mov dword [esp + 0x14], eax
call dword [esp + 0x294]
sub esp, 0x18
cmp eax, 0
jge 0x4141c4
jmp 0x41419b
mov dword [esp], edi
call fcn.00409870
jmp 0x4141a5
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00409870
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.0043b290
mov eax, 4
jmp 0x4141da
jmp 0x4141c6
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00409870
xor eax, eax
mov dword [esp + 0x28], edi
jmp 0x4141da
cmp eax, 0
je 0x414771
jmp 0x414775
call fcn.00409f60
and eax, 0xf
add eax, 0x10
xor edi, edi
lea ebx, [esp + 0x3fc]
jmp 0x4141fe
cmp edi, eax
jb 0x41441e
mov word [ebx], 0
mov al, byte [esp + 0x9c]
mov byte [esp + 0x13c], al
mov byte [esp + 0xa0], 0x25
mov byte [esp + 0xa1], 0x41
mov byte [esp + 0xa2], 0xf6
mov byte [esp + 0xa3], 0x43
mov byte [esp + 0xa4], 1
mov byte [esp + 0xa5], 0x45
mov byte [esp + 0xa6], 0xb
mov byte [esp + 0xa7], 0x47
mov byte [esp + 0xa8], 0xf8
mov byte [esp + 0xa9], 0x49
mov byte [esp + 0xaa], 0x2f
mov byte [esp + 0xab], 0x4b
mov byte [esp + 0xac], 0xf0
mov byte [esp + 0xad], 0x4d
mov byte [esp + 0xae], 0x4e
mov byte [esp + 0xaf], 0x4f
mov eax, 0x10
mov byte [esp + eax + 0xa0], 0
add eax, 1
cmp eax, 0x14
jne 0x41429e
xor eax, eax
cmp eax, 0x14
jae 0x4142ff
movzx edx, byte [esp + eax + 0xa0]
mov ecx, eax
and ecx, 0x6798af70
mov edi, eax
and edi, 0x6798af70
add edi, 0x98675090
add ecx, eax
sub ecx, edi
xor ecx, edx
add ecx, 0xfa0492cf
mov edi, ecx
xor edi, 0xfe
mov edx, ecx
or edx, 1
and edx, edi
or ecx, 1
add edx, ecx
mov byte [esp + eax + 0xa0], dl
add eax, 1
jmp 0x4142b0
lea eax, [esp + 0x39c]
lea ecx, [esp + 0xa0]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040b390
lea ecx, [esp + 0x3fc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040b390
lea ecx, [esp + 0x39c]
sub eax, ecx
sar eax, 1
xor ecx, ecx
lea edx, [esp + 0x39c]
lea ecx, [esp + 0x98]
mov dword [esp], 0
mov dword [esp + 4], edx
mov dword [esp + 0x2d0], eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ecx
call dword [0x44d10c]
sub esp, 0x18
mov cl, byte [esp + 0x94]
mov byte [esp + 0x140], cl
mov byte [esp + 0x44], 0x29
mov byte [esp + 0x45], 7
mov byte [esp + 0x46], 6
mov byte [esp + 0x47], 0x41
xor ecx, ecx
cmp ecx, 4
jae 0x414410
movzx edi, byte [esp + ecx + 0x44]
mov edx, ecx
add edx, 0x28a74441
mov ebx, edx
xor ebx, edi
xor edx, edi
shl edx, 1
sub edx, ebx
mov ebx, edx
and ebx, 0x34bbaaba
mov edi, edx
and edi, 0xcb445545
xor edi, 0xcb445545
and edx, 0xcb445545
xor edx, 0xcb445545
or edx, edi
xor edx, 0xffffffff
add ebx, edx
shl edx, 1
and edx, 2
mov edi, ebx
and edi, edx
shl edi, 1
xor ebx, edx
xor ebx, 1
add ebx, edi
mov byte [esp + ecx + 0x44], bl
mov edx, ecx
shl edx, 1
and edx, 2
mov edi, ecx
shl edi, 1
and edi, 2
add edi, 0xffffffff
sub ecx, edi
add ecx, edx
jmp 0x41439e
mov ecx, dword [esp + 0x44]
cmp eax, ecx
mov ebx, dword [esp + 0x2c]
jne 0x414453
jmp 0x414471
mov dword [esp + 0x2a0], eax
call fcn.00409f60
mov ecx, 0x24
cdq
idiv ecx
movsx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov ecx, ebx
add ecx, 2
mov word [ebx], ax
mov eax, dword [esp + 0x2a0]
add edi, 1
mov ebx, ecx
jmp 0x4141fe
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.0043b290
mov dword [esp + 0x28], 0
mov eax, 4
jmp 0x41476c
mov eax, dword [esp + 0x98]
add eax, 4
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x414491
mov ecx, eax
mov dword [esp], ecx
call fcn.00409860
mov edi, dword [0x44d10c]
mov ecx, dword [esp + 0x98]
xor edx, edx
lea edx, [esp + 0x39c]
mov dword [esp], 0
mov dword [esp + 4], edx
mov edx, dword [esp + 0x2d0]
mov dword [esp + 8], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
lea eax, [esp + 0x98]
mov dword [esp + 0x14], eax
call edi
sub esp, 0x18
cmp eax, 0
jge 0x41450a
jmp 0x4144e8
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00409870
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.0043b290
mov eax, 4
jmp 0x41476c
mov ecx, dword [esp + 0x48]
cmp ecx, 0
sete al
test al, 1
jne 0x41451d
jmp 0x4145df
mov al, byte [esp + 0x90]
mov byte [esp + 0x144], al
mov byte [esp + 0x240], 0xe6
mov byte [esp + 0x241], 0x31
mov byte [esp + 0x242], 0xaf
mov byte [esp + 0x243], 0x33
mov byte [esp + 0x244], 0xa4
mov byte [esp + 0x245], 0x2d
mov byte [esp + 0x246], 0xb3
mov byte [esp + 0x247], 0x2f
mov byte [esp + 0x248], 0x28
mov byte [esp + 0x249], 0x29
mov eax, 0xa
mov byte [esp + eax + 0x240], 0
add eax, 1
cmp eax, 0xf
jne 0x414580
xor eax, eax
cmp eax, 0xf
jae 0x4145c3
mov dl, byte [esp + eax + 0x240]
mov edi, eax
shl edi, 1
and edi, 0x98
mov ecx, eax
xor ecx, 0xcc
add ecx, edi
xor cl, dl
add cl, 4
mov byte [esp + eax + 0x240], cl
add eax, 1
jmp 0x414592
lea eax, [esp + 0x240]
mov ecx, dword [esp + 0x28]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00416050
jmp 0x414768
cmp ecx, 1
sete al
test al, 1
jne 0x4145ee
jmp 0x414697
mov al, byte [esp + 0x8c]
mov byte [esp + 0x148], al
mov byte [esp + 0x54], 0x6e
mov byte [esp + 0x55], 0x41
mov byte [esp + 0x56], 0xa6
mov byte [esp + 0x57], 0x43
mov byte [esp + 0x58], 0xa8
mov byte [esp + 0x59], 0x45
mov byte [esp + 0x5a], 0xaa
mov byte [esp + 0x5b], 0x47
mov byte [esp + 0x5c], 0x48
mov byte [esp + 0x5d], 0x49
mov eax, 0xa
mov byte [esp + eax + 0x54], 0
add eax, 1
cmp eax, 0xc
jne 0x414633
xor eax, eax
cmp eax, 0xc
jae 0x41467a
movzx edx, byte [esp + eax + 0x54]
mov ecx, eax
add ecx, 0xd49c7390
xor ecx, edx
mov edx, ecx
and edx, 0x2f
mov edi, ecx
and edi, 0xd0
mov ebx, ecx
xor ebx, 0x2f
add ecx, ebx
sub ecx, edi
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x54], cl
add eax, 1
jmp 0x414642
lea eax, [esp + 0x54]
mov ecx, dword [esp + 0x28]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00416050
mov ebx, dword [esp + 0x2c]
jmp 0x414768
cmp ecx, 2
sete al
jmp 0x41469f
test al, 1
jne 0x4146a8
jmp 0x414768
mov al, byte [esp + 0x88]
mov byte [esp + 0x14c], al
mov byte [esp + 0x230], 0xbe
mov byte [esp + 0x231], 0xe1
mov byte [esp + 0x232], 0x72
mov byte [esp + 0x233], 0xe3
mov byte [esp + 0x234], 0x77
mov byte [esp + 0x235], 0xe5
mov byte [esp + 0x236], 0xb7
mov byte [esp + 0x237], 0xe7
mov byte [esp + 0x238], 0xd8
mov byte [esp + 0x239], 0xd9
mov eax, 0xa
mov byte [esp + eax + 0x230], 0
add eax, 1
cmp eax, 0xe
jne 0x41470b
xor eax, eax
cmp eax, 0xe
jae 0x41474d
mov dl, byte [esp + eax + 0x230]
movzx edi, dl
mov ecx, eax
add ecx, 0x4a005fd8
mov ebx, ecx
and ebx, edi
shl ebx, 1
sub ecx, ebx
add cl, dl
add cl, 0xc8
mov byte [esp + eax + 0x230], cl
add eax, 1
jmp 0x41471d
lea eax, [esp + 0x230]
mov ecx, dword [esp + 0x28]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00416050
mov ebx, dword [esp + 0x2c]
xor eax, eax
jmp 0x41476c
cmp eax, 0
jne 0x414775
xor eax, eax
jmp 0x414775
cmp eax, 0
jne 0x415bec
lea eax, [esp + 0x26c]
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.00440190
mov edi, eax
cmp edi, 0
jl 0x41494f
mov eax, dword [esp + 0x278]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x26c]
xor edi, edi
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.00440980
mov ecx, dword [esp + 0x26c]
mov dword [esp + 0x2cc], ecx
mov cl, byte [esp + 0x110]
mov byte [esp + 0x178], cl
mov byte [esp + 0x114], 0x17
mov byte [esp + 0x115], 0x16
mov byte [esp + 0x116], 0x15
mov byte [esp + 0x117], 0x14
mov ecx, 4
mov byte [esp + ecx + 0x114], 0
add ecx, 1
cmp ecx, 6
jne 0x414837
mov dword [esp + 0x2d4], eax
xor eax, eax
cmp eax, 6
jae 0x4148b8
movzx edi, byte [esp + eax + 0x114]
mov edx, eax
add edx, 0x9b4f5a3c
mov ecx, edi
xor ecx, 0xffffffff
and edx, ecx
mov ecx, 0xc3
sub ecx, eax
mov ebx, 0xc3
sub ebx, eax
or ecx, ebx
mov ebx, edi
add ebx, 1
xor edi, 0xffffffff
or ecx, edi
add ecx, ebx
mov ebx, dword [esp + 0x2c]
or ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0xa6
mov edi, ecx
shl edi, 1
and edi, 0xa6
add edi, 0x2d
sub ecx, edi
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x114], cl
add eax, 1
jmp 0x414850
mov ecx, dword [esp + 0x114]
xor edx, edx
mov edi, dword [esp + 0x28]
cmp edx, dword [0x44d110]
jb 0x4148cf
jmp 0x414942
mov eax, dword [0x44d114]
cmp dword [eax + edx*8], 0x1b6183f2
sete bl
test bl, 1
jne 0x4148e5
jmp 0x41492e
mov eax, dword [eax + edx*8 + 4]
cmp eax, ecx
je 0x41492e
mov dword [esp + 0x2b8], ecx
mov ecx, dword [0x44d118]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x2cc]
mov dword [esp + 0xc], eax
mov dword [esp + 0x2a4], edx
call fcn.0043dd00
mov edx, dword [esp + 0x2a4]
mov ecx, dword [esp + 0x2b8]
test bl, 1
je 0x414939
mov ebx, dword [esp + 0x2c]
jmp 0x414942
add edx, 1
mov ebx, dword [esp + 0x2c]
jmp 0x4148c5
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x2d4]
jmp 0x41494f
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.0043b290
mov dword [esp + 0x34], 0
cmp edi, 0
jge 0x414982
mov dword [esp + 0x30], 0
mov eax, 4
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x28]
jmp 0x415052
mov ecx, dword [esp + 0x48]
cmp ecx, 1
mov edi, dword [esp + 0x28]
jne 0x414d35
mov al, byte [esp + 0x84]
mov byte [esp + 0x150], al
mov byte [esp + 0x228], 0x86
mov byte [esp + 0x229], 0x9f
mov byte [esp + 0x22a], 0x22
mov eax, 3
mov byte [esp + eax + 0x228], 0
add eax, 1
cmp eax, 7
jne 0x4149be
xor eax, eax
cmp eax, 7
jae 0x414a04
movzx edx, byte [esp + eax + 0x228]
mov edi, eax
add edi, 0x88
mov ecx, 0x77
sub ecx, eax
and ecx, edx
xor edx, 0xffffffff
and edi, edx
or ecx, edi
add cl, 0x58
mov byte [esp + eax + 0x228], cl
add eax, 1
jmp 0x4149d0
lea eax, [esp + 0x228]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401880
mov dword [esp + 0x64], eax
mov al, byte [esp + 0x80]
mov byte [esp + 0x154], al
mov byte [esp + 0x220], 0xa1
mov byte [esp + 0x221], 0xd3
mov byte [esp + 0x222], 0x42
mov eax, 3
mov edi, dword [esp + 0x28]
mov byte [esp + eax + 0x220], 0
add eax, 1
cmp eax, 8
jne 0x414a4e
xor eax, eax
cmp eax, 8
jae 0x414a92
movzx edx, byte [esp + eax + 0x220]
mov ecx, eax
add ecx, 0xb94df510
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
mov edi, dword [esp + 0x28]
add cl, 0xb0
mov byte [esp + eax + 0x220], cl
add eax, 1
jmp 0x414a60
lea eax, [esp + 0x220]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401880
mov dword [esp + 0x60], eax
mov dword [esp], edi
call fcn.004160a0
mov ebx, eax
cmp dword [esp + 0x64], 0
setne al
xor edx, edx
mov byte [esp + 0x41], al
test al, 1
jne 0x414acb
jmp 0x414ae5
mov eax, dword [esp + 0x64]
mov dword [esp], eax
call fcn.00409970
mov edx, eax
mov eax, edx
and eax, 1
shl eax, 1
xor edx, 1
add edx, eax
cmp dword [esp + 0x60], 0
setne cl
xor eax, eax
mov byte [esp + 0x42], cl
test cl, 1
jne 0x414afa
jmp 0x414b1c
mov eax, dword [esp + 0x60]
mov dword [esp], eax
mov dword [esp + 0x28], edi
mov edi, edx
call fcn.00409970
mov edx, edi
mov edi, dword [esp + 0x28]
mov ecx, eax
and ecx, 1
or eax, 1
add eax, ecx
mov ecx, ebx
and ecx, 9
or ebx, 9
add ebx, ecx
mov dword [esp + 0x2dc], edx
add ebx, edx
xor ecx, ecx
sub ecx, ebx
xor edx, edx
mov dword [esp + 0x264], eax
sub edx, eax
add ecx, edx
xor eax, eax
sub eax, ecx
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x414b5d
mov ecx, eax
mov dword [esp], ecx
call fcn.00409860
mov dword [esp + 0x30], eax
mov al, byte [esp + 0x7c]
mov byte [esp + 0x158], al
mov byte [esp + 0x208], 0x56
mov byte [esp + 0x209], 0xc7
mov byte [esp + 0x20a], 0x59
mov byte [esp + 0x20b], 0xc1
mov byte [esp + 0x20c], 0x56
mov byte [esp + 0x20d], 0xc3
mov byte [esp + 0x20e], 0xae
mov byte [esp + 0x20f], 0xcd
mov byte [esp + 0x210], 0x58
mov byte [esp + 0x211], 0xcf
mov byte [esp + 0x212], 0x5a
mov byte [esp + 0x213], 0xc9
mov byte [esp + 0x214], 0x95
mov byte [esp + 0x215], 0xcb
mov byte [esp + 0x216], 0x98
mov byte [esp + 0x217], 0xf5
mov byte [esp + 0x218], 0xf4
mov byte [esp + 0x219], 0xf7
mov eax, 0x12
mov byte [esp + eax + 0x208], 0
add eax, 1
cmp eax, 0x16
jne 0x414c09
xor eax, eax
cmp eax, 0x16
jae 0x414c56
mov dl, byte [esp + eax + 0x208]
mov edi, eax
add edi, 0x51
mov ecx, 0x2e
sub ecx, eax
and ecx, 0x41
and edi, 0xbe
or ecx, edi
mov edi, dword [esp + 0x28]
xor cl, dl
xor cl, 0x41
add cl, 0x6b
mov byte [esp + eax + 0x208], cl
add eax, 1
jmp 0x414c1b
lea eax, [esp + 0x208]
mov ecx, dword [esp + 0x30]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040b390
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.0040b390
mov ecx, edi
mov edi, eax
add edi, 2
mov word [eax], 0x22
cmp ecx, 0
je 0x414ca7
mov dword [esp], ecx
call fcn.00409870
jmp 0x414ca7
test byte [esp + 0x41], 1
jne 0x414cbb
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x264]
jmp 0x414cfb
mov ebx, edi
add ebx, 2
mov word [edi], 0x2c
xor eax, eax
mov dword [esp], ebx
mov eax, dword [esp + 0x2dc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040bfb0
shl eax, 1
add ebx, eax
mov edi, ebx
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x264]
test byte [esp + 0x42], 1
jne 0x414d04
jmp 0x414d2c
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 + 0x60]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040bfb0
xor edi, edi
xor ecx, ecx
jmp 0x415050
cmp ecx, 2
sete al
mov dword [esp + 0x30], 0
test al, 1
jne 0x414d4c
jmp 0x415050
mov dword [esp], edi
call fcn.004160a0
xor eax, 0xffffffff
sub eax, 0xffffffff
mov ecx, 0x1d
sub ecx, eax
sub ecx, 0xffffffff
mov edx, 2
mov eax, ecx
mul edx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x414d7c
mov ecx, eax
mov dword [esp], ecx
call fcn.00409860
mov dword [esp + 0x30], eax
mov al, byte [esp + 0x70]
mov byte [esp + 0x15c], al
mov byte [esp + 0x74], 0x12
mov byte [esp + 0x75], 0x4b
mov byte [esp + 0x76], 0x4a
mov byte [esp + 0x77], 0x49
mov eax, 4
mov byte [esp + eax + 0x74], 0
add eax, 1
cmp eax, 8
jne 0x414dac
xor eax, eax
cmp eax, 8
jae 0x414dfc
movzx edx, byte [esp + eax + 0x74]
mov ecx, 0xc
sub ecx, eax
or ecx, edx
mov dword [esp + 0x28], edi
mov edi, eax
add edi, 0xf3
mov ebx, eax
add ebx, 0xf3
and edi, ebx
xor edx, 0xffffffff
or edi, edx
and ecx, edi
mov edi, dword [esp + 0x28]
mov dl, 0x40
sub dl, cl
mov byte [esp + eax + 0x74], dl
add eax, 1
jmp 0x414dbb
mov al, byte [esp + 0x6c]
mov byte [esp + 0x160], al
mov byte [esp + 0x190], 0x7c
mov byte [esp + 0x191], 0xcf
mov byte [esp + 0x192], 0x7f
mov byte [esp + 0x193], 0xd1
mov byte [esp + 0x194], 0x69
mov byte [esp + 0x195], 0xd3
mov byte [esp + 0x196], 0x75
mov byte [esp + 0x197], 0xd5
mov byte [esp + 0x198], 0x66
mov byte [esp + 0x199], 0xd7
mov byte [esp + 0x19a], 0x63
mov byte [esp + 0x19b], 0xd9
mov byte [esp + 0x19c], 0x70
mov byte [esp + 0x19d], 0xdb
mov byte [esp + 0x19e], 0x7d
mov byte [esp + 0x19f], 0xdd
mov byte [esp + 0x1a0], 0x70
mov byte [esp + 0x1a1], 0xdf
mov byte [esp + 0x1a2], 0x72
mov byte [esp + 0x1a3], 0xa1
mov byte [esp + 0x1a4], 0x40
mov byte [esp + 0x1a5], 0xa3
mov byte [esp + 0x1a6], 0x4d
mov byte [esp + 0x1a7], 0xa5
mov byte [esp + 0x1a8], 3
mov byte [esp + 0x1a9], 0xa7
mov byte [esp + 0x1aa], 0x1e
mov byte [esp + 0x1ab], 0xa9
mov byte [esp + 0x1ac], 0xf
mov byte [esp + 0x1ad], 0xab
mov byte [esp + 0x1ae], 0xf
mov byte [esp + 0x1af], 0xad
mov byte [esp + 0x1b0], 0x4c
mov byte [esp + 0x1b1], 0xaf
mov byte [esp + 0x1b2], 0xc
mov byte [esp + 0x1b3], 0xb1
mov byte [esp + 0x1b4], 0xb
mov byte [esp + 0x1b5], 0xb3
mov byte [esp + 0x1b6], 2
mov byte [esp + 0x1b7], 0xb5
mov byte [esp + 0x1b8], 0x17
mov byte [esp + 0x1b9], 0xb7
mov byte [esp + 0x1ba], 3
mov byte [esp + 0x1bb], 0xb9
mov byte [esp + 0x1bc], 0xd
mov byte [esp + 0x1bd], 0xbb
mov byte [esp + 0x1be], 0x5a
mov byte [esp + 0x1bf], 0xbd
mov byte [esp + 0x1c0], 0x53
mov byte [esp + 0x1c1], 0xbf
mov byte [esp + 0x1c2], 0x18
mov byte [esp + 0x1c3], 0x81
mov byte [esp + 0x1c4], 0x60
mov byte [esp + 0x1c5], 0x83
mov byte [esp + 0x1c6], 0x60
mov byte [esp + 0x1c7], 0x85
mov byte [esp + 0x1c8], 0x84
mov byte [esp + 0x1c9], 0x87
mov eax, 0x3a
mov byte [esp + eax + 0x190], 0
add eax, 1
cmp eax, 0x3e
jne 0x414fdc
xor eax, eax
mov ebx, dword [esp + 0x2c]
cmp eax, 0x3e
jae 0x415014
mov cl, byte [esp + eax + 0x190]
mov dl, 0x52
sub dl, al
xor dl, cl
mov cl, 0x9e
sub cl, dl
mov byte [esp + eax + 0x190], cl
add eax, 1
jmp 0x414ff2
lea eax, [esp + 0x190]
mov ecx, dword [esp + 0x30]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040b390
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.0040b390
lea ecx, [esp + 0x74]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040b390
jmp 0x415049
mov ecx, 2
jmp 0x415050
xor eax, eax
cmp eax, 0
sete al
test al, 1
jne 0x41536b
jmp 0x415bec
xor edi, 1
mov eax, ecx
xor eax, 2
or edi, eax
sete al
test al, 1
jne 0x415085
mov dword [esp + 0x30], 0
xor edi, edi
jmp 0x41536b
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00415c10
xor ecx, ecx
sub ecx, eax
add ecx, 0xffffffff
xor ebx, ebx
sub ebx, ecx
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4150b4
mov ecx, eax
mov dword [esp], ecx
call fcn.00409860
mov edi, eax
mov eax, dword [esp + 0x34]
xor ecx, ecx
mov dword [esp], edi
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040bfb0
mov eax, dword [esp + 0x278]
add eax, 0x928db661
sub eax, 0x928db649
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x415106
mov ecx, eax
mov dword [esp], ecx
call fcn.00409860
mov edx, eax
mov cl, byte [esp + 0x68]
mov byte [esp + 0x164], cl
mov byte [esp + 0x1d0], 0xcc
mov byte [esp + 0x1d1], 0x7f
mov byte [esp + 0x1d2], 0xcf
mov byte [esp + 0x1d3], 0x71
mov byte [esp + 0x1d4], 0xf9
mov byte [esp + 0x1d5], 0x73
mov byte [esp + 0x1d6], 0xd5
mov byte [esp + 0x1d7], 0x75
mov byte [esp + 0x1d8], 0xc6
mov byte [esp + 0x1d9], 0x77
mov byte [esp + 0x1da], 0xc3
mov byte [esp + 0x1db], 0x49
mov byte [esp + 0x1dc], 0xf0
mov byte [esp + 0x1dd], 0x4b
mov byte [esp + 0x1de], 0xed
mov byte [esp + 0x1df], 0x4d
mov byte [esp + 0x1e0], 0xf0
mov byte [esp + 0x1e1], 0x4f
mov byte [esp + 0x1e2], 0xf2
mov byte [esp + 0x1e3], 0x41
mov byte [esp + 0x1e4], 0xa0
mov byte [esp + 0x1e5], 0x43
mov byte [esp + 0x1e6], 0xbd
mov byte [esp + 0x1e7], 0x45
mov byte [esp + 0x1e8], 0xe3
mov byte [esp + 0x1e9], 0x47
mov byte [esp + 0x1ea], 0xce
mov byte [esp + 0x1eb], 0x59
mov byte [esp + 0x1ec], 0xff
mov byte [esp + 0x1ed], 0x5b
mov byte [esp + 0x1ee], 0xff
mov byte [esp + 0x1ef], 0x5d
mov byte [esp + 0x1f0], 0xbc
mov byte [esp + 0x1f1], 0x5f
mov byte [esp + 0x1f2], 0xfc
mov byte [esp + 0x1f3], 0x51
mov byte [esp + 0x1f4], 0xdb
mov byte [esp + 0x1f5], 0x53
mov byte [esp + 0x1f6], 0xe2
mov byte [esp + 0x1f7], 0x55
mov byte [esp + 0x1f8], 0xf7
mov byte [esp + 0x1f9], 0x57
mov byte [esp + 0x1fa], 0xe3
mov byte [esp + 0x1fb], 0x29
mov byte [esp + 0x1fc], 0x9d
mov byte [esp + 0x1fd], 0x2b
mov byte [esp + 0x1fe], 0xca
mov byte [esp + 0x1ff], 0x2d
mov byte [esp + 0x200], 0x2c
mov byte [esp + 0x201], 0x2f
mov ecx, 0x32
mov byte [esp + ecx + 0x1d0], 0
add ecx, 1
cmp ecx, 0x38
jne 0x4152b0
xor eax, eax
mov dword [esp + 0x30], edx
cmp eax, 0x38
jae 0x415338
movzx ecx, byte [esp + eax + 0x1d0]
mov dword [esp + 0x29c], ecx
xor edx, edx
sub edx, eax
mov ecx, edi
mov edi, edx
shl edi, 1
and edi, 0xe62ebcd6
xor edx, 0xce8a194
add edx, 1
sub edx, edi
mov edi, edx
shl edi, 1
xor edi, 0xffffffff
mov ebx, edx
add ebx, edi
mov edi, ecx
mov ecx, dword [esp + 0x30]
and ebx, 0xf96d7d08
and edx, 0x69282f7
or ebx, edx
mov edx, ecx
xor ebx, dword [esp + 0x29c]
mov ecx, ebx
shl ecx, 1
and ecx, 2
xor ebx, 9
add ebx, 0x16
add ebx, ecx
mov byte [esp + eax + 0x1d0], bl
add eax, 1
jmp 0x4152c6
lea ecx, [esp + 0x1d0]
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.0040b390
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.0040b390
mov ebx, dword [esp + 0x2c]
mov dword [esp], edi
call fcn.00409870
mov ecx, dword [esp + 0x48]
xor edi, edi
jmp 0x41536b
mov al, byte [esp + 0x43]
test ecx, ecx
je 0x415390
jmp 0x415375
mov eax, ecx
sub eax, 1
je 0x41558f
jmp 0x415382
sub ecx, 2
je 0x415889
jmp 0x415bb3
test al, 1
jne 0x415399
jmp 0x41558f
lea eax, [esp + 0x358]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x44
call fcn.004098e0
mov dword [esp + 0x358], 0x44
mov eax, dword [0x44c104]
mov dword [esp], eax
mov dword [esp + 4], 0xef6ed546
call fcn.0043f880
cmp eax, 0
setne cl
test cl, 1
jne 0x4153e7
jmp 0x4153e7
test cl, 1
jne 0x4153ee
xor eax, eax
xor ecx, ecx
lea ecx, [esp + 0x358]
lea edx, [esp + 0x304]
mov dword [esp + 0x28], edi
mov dword [esp], edi
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 0x415586
mov eax, dword [esp + 0x304]
mov dword [esp + 0x2c0], eax
mov al, byte [esp + 0x104]
mov byte [esp + 0x17c], al
mov byte [esp + 0x108], 0x17
mov byte [esp + 0x109], 0x16
mov byte [esp + 0x10a], 0x15
mov byte [esp + 0x10b], 0x14
mov eax, 4
mov byte [esp + eax + 0x108], 0
add eax, 1
cmp eax, 6
jne 0x415494
xor eax, eax
cmp eax, 6
jae 0x41550a
movzx edi, byte [esp + eax + 0x108]
mov edx, eax
add edx, 0x9b4f5a3c
mov ecx, edi
xor ecx, 0xffffffff
and edx, ecx
mov ecx, 0xc3
sub ecx, eax
mov ebx, 0xc3
sub ebx, eax
or ecx, ebx
mov ebx, edi
add ebx, 1
xor edi, 0xffffffff
or ecx, edi
add ecx, ebx
or ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0xa6
mov edi, ecx
shl edi, 1
and edi, 0xa6
add edi, 0x2d
sub ecx, edi
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x108], cl
add eax, 1
jmp 0x4154a6
mov ecx, dword [esp + 0x108]
xor ebx, ebx
cmp ebx, dword [0x44d110]
jb 0x41551d
jmp 0x415582
mov eax, dword [0x44d114]
cmp dword [eax + ebx*8], 0x1b6183f2
sete dl
test dl, 1
jne 0x415533
jmp 0x415576
mov eax, dword [eax + ebx*8 + 4]
cmp eax, ecx
je 0x415576
mov dword [esp + 0x2a8], ecx
mov ecx, dword [0x44d118]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x2c0]
mov dword [esp + 0xc], eax
mov byte [esp + 0x3c], dl
call fcn.0043dd00
mov dl, byte [esp + 0x3c]
mov ecx, dword [esp + 0x2a8]
test dl, 1
je 0x41557d
jmp 0x415582
add ebx, 1
jmp 0x415513
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
jmp 0x415bb3
mov eax, dword [0x44c104]
mov dword [esp], eax
mov dword [esp + 4], 0x737de518
call fcn.0043f880
cmp eax, 0
setne cl
test cl, 1
jne 0x4155b1
jmp 0x4155b1
test cl, 1
jne 0x4155b8
xor eax, eax
mov ecx, dword [esp + 0x34]
xor edx, edx
lea edx, [0x422b60]
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
je 0x415884
mov dword [esp + 0x268], eax
mov dword [esp + 0x2ec], 0xffffffff
mov dword [esp + 0x2e8], 0xdc3cba00
mov al, byte [esp + 0x168]
mov byte [esp + 0x174], al
mov byte [esp + 0x16c], 0x17
mov byte [esp + 0x16d], 0x16
mov byte [esp + 0x16e], 0x15
mov byte [esp + 0x16f], 0x14
mov eax, 4
mov byte [esp + eax + 0x16c], 0
add eax, 1
cmp eax, 6
jne 0x415649
mov dword [esp + 0x28], edi
xor eax, eax
cmp eax, 6
jae 0x4156c3
movzx edi, byte [esp + eax + 0x16c]
mov edx, eax
add edx, 0x9b4f5a3c
mov ecx, edi
xor ecx, 0xffffffff
and edx, ecx
mov ecx, 0xc3
sub ecx, eax
mov ebx, 0xc3
sub ebx, eax
or ecx, ebx
mov ebx, edi
add ebx, 1
xor edi, 0xffffffff
or ecx, edi
add ecx, ebx
or ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0xa6
mov edi, ecx
shl edi, 1
and edi, 0xa6
add edi, 0x2d
sub ecx, edi
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x16c], cl
add eax, 1
jmp 0x41565f
mov ecx, dword [esp + 0x16c]
xor ebx, ebx
mov edi, dword [esp + 0x28]
cmp ebx, dword [0x44d110]
jb 0x4156da
jmp 0x415759
mov eax, dword [0x44d114]
cmp dword [eax + ebx*8], 0x4c697c35
sete dl
test dl, 1
jne 0x4156f0
jmp 0x41574a
mov eax, dword [eax + ebx*8 + 4]
cmp eax, ecx
je 0x41574a
mov dword [esp + 0x2bc], ecx
mov ecx, dword [0x44d118]
mov byte [esp + 0x40], dl
xor edx, edx
lea edx, [esp + 0x2e8]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0xc
mov eax, dword [esp + 0x268]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
call fcn.0043dd00
mov dl, byte [esp + 0x40]
mov ecx, dword [esp + 0x2bc]
jmp 0x41574a
test dl, 1
je 0x415751
jmp 0x415759
add ebx, 1
jmp 0x4156d0
mov al, byte [esp + 0xf8]
mov byte [esp + 0x180], al
mov byte [esp + 0xfc], 0x17
mov byte [esp + 0xfd], 0x16
mov byte [esp + 0xfe], 0x15
mov byte [esp + 0xff], 0x14
mov eax, 4
mov byte [esp + eax + 0xfc], 0
add eax, 1
cmp eax, 6
jne 0x41578c
xor eax, eax
cmp eax, 6
jae 0x415806
movzx edi, byte [esp + eax + 0xfc]
mov edx, eax
add edx, 0x9b4f5a3c
mov ecx, edi
xor ecx, 0xffffffff
and edx, ecx
mov ecx, 0xc3
sub ecx, eax
mov ebx, 0xc3
sub ebx, eax
or ecx, ebx
mov ebx, edi
add ebx, 1
xor edi, 0xffffffff
or ecx, edi
add ecx, ebx
or ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0xa6
mov edi, ecx
shl edi, 1
and edi, 0xa6
add edi, 0x2d
sub ecx, edi
mov edi, dword [esp + 0x28]
add ecx, edx
add cl, 1
mov byte [esp + eax + 0xfc], cl
add eax, 1
jmp 0x41579e
mov ecx, dword [esp + 0xfc]
xor ebx, ebx
cmp ebx, dword [0x44d110]
jb 0x415819
jmp 0x41587e
mov eax, dword [0x44d114]
cmp dword [eax + ebx*8], 0x1b6183f2
sete dl
test dl, 1
jne 0x41582f
jmp 0x415872
mov eax, dword [eax + ebx*8 + 4]
cmp eax, ecx
je 0x415872
mov dword [esp + 0x2ac], ecx
mov ecx, dword [0x44d118]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x268]
mov dword [esp + 0xc], eax
mov byte [esp + 0x3d], dl
call fcn.0043dd00
mov dl, byte [esp + 0x3d]
mov ecx, dword [esp + 0x2ac]
test dl, 1
je 0x415879
jmp 0x41587e
add ebx, 1
jmp 0x41580f
mov ebx, dword [esp + 0x2c]
jmp 0x415884
jmp 0x415bb3
lea eax, [esp + 0x314]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x44
call fcn.004098e0
mov dword [esp + 0x314], 0x44
mov eax, dword [0x44c104]
mov dword [esp], eax
mov dword [esp + 4], 0xef6ed546
call fcn.0043f880
cmp eax, 0
setne cl
test cl, 1
jne 0x4158d7
jmp 0x4158d7
test cl, 1
jne 0x4158de
xor eax, eax
xor ecx, ecx
lea edx, [esp + 0x2f4]
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 + 0x314]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
call eax
sub esp, 0x28
cmp eax, 0
je 0x415bb1
mov eax, dword [esp + 0x2f8]
mov dword [esp + 0x2c8], eax
mov al, byte [esp + 0xec]
mov byte [esp + 0x184], al
mov byte [esp + 0xf0], 0x17
mov byte [esp + 0xf1], 0x16
mov byte [esp + 0xf2], 0x15
mov byte [esp + 0xf3], 0x14
mov eax, 4
mov byte [esp + eax + 0xf0], 0
add eax, 1
cmp eax, 6
jne 0x415984
mov dword [esp + 0x28], edi
xor eax, eax
cmp eax, 6
jae 0x4159fe
movzx edi, byte [esp + eax + 0xf0]
mov edx, eax
add edx, 0x9b4f5a3c
mov ecx, edi
xor ecx, 0xffffffff
and edx, ecx
mov ecx, 0xc3
sub ecx, eax
mov ebx, 0xc3
sub ebx, eax
or ecx, ebx
mov ebx, edi
add ebx, 1
xor edi, 0xffffffff
or ecx, edi
add ecx, ebx
or ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0xa6
mov edi, ecx
shl edi, 1
and edi, 0xa6
add edi, 0x2d
sub ecx, edi
add ecx, edx
add cl, 1
mov byte [esp + eax + 0xf0], cl
add eax, 1
jmp 0x41599a
mov ecx, dword [esp + 0xf0]
xor ebx, ebx
mov edi, dword [esp + 0x28]
cmp ebx, dword [0x44d110]
jb 0x415a15
jmp 0x415a7a
mov eax, dword [0x44d114]
cmp dword [eax + ebx*8], 0x1b6183f2
sete dl
test dl, 1
jne 0x415a2b
jmp 0x415a6e
mov eax, dword [eax + ebx*8 + 4]
cmp eax, ecx
je 0x415a6e
mov dword [esp + 0x2b4], ecx
mov ecx, dword [0x44d118]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x2c8]
mov dword [esp + 0xc], eax
mov byte [esp + 0x3f], dl
call fcn.0043dd00
mov dl, byte [esp + 0x3f]
mov ecx, dword [esp + 0x2b4]
test dl, 1
je 0x415a75
jmp 0x415a7a
add ebx, 1
jmp 0x415a0b
mov eax, dword [esp + 0x2f4]
mov dword [esp + 0x2c4], eax
mov al, byte [esp + 0xe0]
mov byte [esp + 0x188], al
mov byte [esp + 0xe4], 0x17
mov byte [esp + 0xe5], 0x16
mov byte [esp + 0xe6], 0x15
mov byte [esp + 0xe7], 0x14
mov eax, 4
mov byte [esp + eax + 0xe4], 0
add eax, 1
cmp eax, 6
jne 0x415abb
xor eax, eax
cmp eax, 6
jae 0x415b35
movzx edi, byte [esp + eax + 0xe4]
mov edx, eax
add edx, 0x9b4f5a3c
mov ecx, edi
xor ecx, 0xffffffff
and edx, ecx
mov ecx, 0xc3
sub ecx, eax
mov ebx, 0xc3
sub ebx, eax
or ecx, ebx
mov ebx, edi
add ebx, 1
xor edi, 0xffffffff
or ecx, edi
add ecx, ebx
or ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0xa6
mov edi, ecx
shl edi, 1
and edi, 0xa6
add edi, 0x2d
sub ecx, edi
mov edi, dword [esp + 0x28]
add ecx, edx
add cl, 1
mov byte [esp + eax + 0xe4], cl
add eax, 1
jmp 0x415acd
mov ecx, dword [esp + 0xe4]
xor ebx, ebx
cmp ebx, dword [0x44d110]
jb 0x415b48
jmp 0x415bad
mov eax, dword [0x44d114]
cmp dword [eax + ebx*8], 0x1b6183f2
sete dl
test dl, 1
jne 0x415b5e
jmp 0x415ba1
mov eax, dword [eax + ebx*8 + 4]
cmp eax, ecx
je 0x415ba1
mov dword [esp + 0x2b0], ecx
mov ecx, dword [0x44d118]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x2c4]
mov dword [esp + 0xc], eax
mov byte [esp + 0x3e], dl
call fcn.0043dd00
mov dl, byte [esp + 0x3e]
mov ecx, dword [esp + 0x2b0]
test dl, 1
je 0x415ba8
jmp 0x415bad
add ebx, 1
jmp 0x415b3e
mov ebx, dword [esp + 0x2c]
jmp 0x415bb3
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.0043b290
cmp edi, 0
sete al
jmp 0x415bc7
test al, 1
jne 0x415bd7
jmp 0x415bcd
mov dword [esp], edi
call fcn.00409870
jmp 0x415bd7
mov eax, dword [esp + 0x30]
cmp eax, 0
je 0x415bea
mov dword [esp], eax
call fcn.00409870
jmp 0x415bea
jmp 0x415bec
jmp 0x415bee
sub ebx, 0xffffffff
jmp 0x413a8c
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret