Function at 0x411140
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x818
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00401c30
mov ebx, eax
cmp ebx, 0
jne 0x411168
xor eax, eax
jmp 0x4130bb
xor edi, edi
jmp 0x41116c
mov dword [esp], ebx
call fcn.00402070
cmp edi, eax
setb al
test al, 1
jne 0x411186
jmp 0x41117f
mov al, 1
jmp 0x4130bb
mov dword [esp], ebx
mov dword [esp + 4], edi
call fcn.00402080
mov dword [esp + 0x40], eax
mov al, byte [esp + 0xd8]
mov byte [esp + 0x118], al
mov byte [esp + 0x54], 0xf5
mov byte [esp + 0x55], 1
mov eax, 2
mov byte [esp + eax + 0x54], 0
add eax, 1
cmp eax, 4
jne 0x4111b3
xor eax, eax
cmp eax, 4
jae 0x4111fc
movzx edx, byte [esp + eax + 0x54]
mov esi, eax
add esi, 0xe94a3140
or esi, edx
mov ecx, eax
add ecx, 0x40
and ecx, edx
mov edx, esi
xor edx, ecx
xor ecx, esi
shl ecx, 1
sub ecx, edx
add cl, 0xc0
mov byte [esp + eax + 0x54], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x4111c2
lea eax, [esp + 0x54]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00401f50
cmp eax, 0
je 0x411421
mov dword [esp + 0x2c], ebx
mov al, byte [esp + 0xd4]
mov byte [esp + 0x11c], al
mov byte [esp + 0x23c], 0x7e
mov byte [esp + 0x23d], 0x6f
mov byte [esp + 0x23e], 0xda
mov eax, 3
mov byte [esp + eax + 0x23c], 0
add eax, 1
cmp eax, 7
jne 0x411250
mov dword [esp + 0x34], edi
xor ebx, ebx
cmp ebx, 7
jae 0x41134d
movzx ecx, byte [esp + ebx + 0x23c]
mov dword [esp + 0x280], ecx
mov eax, 0x91629550
sub eax, ebx
or eax, ecx
mov dword [esp + 0x284], eax
mov esi, 0x91629550
sub esi, ebx
mov edx, 0x91629550
sub edx, ebx
mov eax, ebx
add eax, 0x6e9d6aaf
mov ecx, ebx
add ecx, 0x6e9d6aaf
mov dword [esp + 0x244], ecx
mov ecx, eax
and ecx, 0x61f2b388
and esi, 0x9e0d4c77
mov edi, dword [esp + 0x244]
and edi, 0x61f2b388
and edx, 0x9e0d4c77
or ecx, esi
or edi, edx
xor ecx, edi
or eax, dword [esp + 0x244]
xor eax, 0xffffffff
or ecx, eax
mov eax, ecx
xor eax, 0xffffffff
or eax, dword [esp + 0x280]
add ecx, eax
add ecx, 1
mov edx, dword [esp + 0x284]
mov eax, edx
shl eax, 1
xor eax, 0xffffffff
add edx, eax
or ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0xadd9d528
mov eax, ecx
xor eax, 0xd6ecea94
mov esi, eax
and esi, edx
shl esi, 1
xor eax, edx
add eax, esi
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + ebx + 0x23c], al
mov eax, ebx
add eax, 1
mov ecx, ebx
xor ecx, 0xffffffff
or ecx, 1
add eax, ecx
or ebx, 1
add ebx, eax
jmp 0x411266
lea eax, [esp + 0x23c]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401f50
cmp eax, 0
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x34]
je 0x411421
mov al, byte [esp + 0xd0]
mov byte [esp + 0x120], al
mov byte [esp + 0x274], 0xe5
mov byte [esp + 0x275], 0x41
mov eax, 2
mov byte [esp + eax + 0x274], 0
add eax, 1
cmp eax, 8
jne 0x4113a0
xor eax, eax
cmp eax, 8
jae 0x4113e0
mov dl, byte [esp + eax + 0x274]
mov esi, eax
shl esi, 1
and esi, 0xe0
mov ecx, eax
xor ecx, 0x70
add ecx, esi
xor cl, dl
add cl, 0xd0
mov byte [esp + eax + 0x274], cl
add eax, 1
jmp 0x4113b2
lea eax, [esp + 0x274]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401f50
cmp eax, 0
setne al
mov cl, al
xor cl, 0xff
xor al, 0xff
or cl, al
xor cl, 0xff
or cl, 0
xor cl, 0xff
or cl, 0
test cl, 1
jne 0x411421
jmp 0x411426
jmp 0x4130b3
mov al, byte [esp + 0xcc]
mov byte [esp + 0x124], al
mov byte [esp + 0x26c], 0xf
mov byte [esp + 0x26d], 0xbb
mov eax, 2
mov byte [esp + eax + 0x26c], 0
add eax, 1
cmp eax, 7
jne 0x411449
xor eax, eax
cmp eax, 7
jae 0x411497
movzx esi, byte [esp + eax + 0x26c]
mov ecx, 0x20
sub ecx, eax
or ecx, esi
mov edx, 0x20
sub edx, eax
mov edi, 0x20
sub edi, eax
or edx, edi
and edx, esi
xor ecx, 0xffffffff
or edx, ecx
add dl, 0xa5
mov byte [esp + eax + 0x26c], dl
add eax, 1
jmp 0x41145b
lea eax, [esp + 0x26c]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018c0
mov dword [esp + 0x2b0], eax
mov al, byte [esp + 0xc8]
mov byte [esp + 0x128], al
mov byte [esp + 0x50], 0xd6
mov byte [esp + 0x51], 0xc7
mov byte [esp + 0x52], 0x4a
mov eax, 3
mov byte [esp + eax + 0x50], 0
add eax, 1
cmp eax, 4
jne 0x4114d7
xor eax, eax
mov edi, dword [esp + 0x34]
cmp eax, 4
jae 0x411517
movzx edx, byte [esp + eax + 0x50]
mov ecx, eax
add ecx, 0x42555d73
xor ecx, edx
mov edx, ecx
and edx, 1
or ecx, 1
add ecx, 0xc0
add ecx, edx
mov byte [esp + eax + 0x50], cl
add eax, 1
jmp 0x4114ea
lea eax, [esp + 0x50]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.004019f0
fnstcw word [esp + 0x5a]
movzx eax, word [esp + 0x5a]
or eax, 0xc00
mov word [esp + 0x182], ax
fldcw word [esp + 0x182]
fistp dword [esp + 0x2bc]
fldcw word [esp + 0x5a]
mov ecx, dword [esp + 0x2bc]
mov al, byte [esp + 0xc4]
mov byte [esp + 0x12c], al
mov byte [esp + 0x264], 0x5b
mov byte [esp + 0x265], 0x3f
mov eax, 2
mov byte [esp + eax + 0x264], 0
add eax, 1
cmp eax, 6
jne 0x41157d
mov dword [esp + 0x5c], ecx
xor eax, eax
cmp eax, 6
jae 0x4115e1
movzx ecx, byte [esp + eax + 0x264]
mov esi, 0xed61fcca
sub esi, eax
mov edx, 0xed61fcca
sub edx, eax
and esi, edx
or esi, ecx
mov edx, esi
xor edx, 0xffffffff
shl edx, 1
add edx, esi
mov ebx, 0xca
sub ebx, eax
mov esi, 0xca
sub esi, eax
or ebx, esi
and ebx, ecx
add edx, 1
or ebx, edx
add bl, 0xf7
mov byte [esp + eax + 0x264], bl
add eax, 1
jmp 0x411593
lea eax, [esp + 0x264]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.004019f0
fnstcw word [esp + 0x58]
movzx eax, word [esp + 0x58]
or eax, 0xc00
mov word [esp + 0x180], ax
fldcw word [esp + 0x180]
fistp dword [esp + 0x2b8]
fldcw word [esp + 0x58]
mov ebx, dword [esp + 0x2b8]
lea eax, [esp + 0x414]
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.0040af10
lea eax, [esp + 0x414]
lea ecx, [esp + 0x44]
lea edx, [esp + 0x260]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.0040b660
test al, 1
jne 0x411682
mov ebx, dword [esp + 0x2c]
jmp 0x4130b1
cmp ebx, 0
sete al
test al, 1
mov byte [esp + 0x33], al
jne 0x411695
jmp 0x41267b
mov al, byte [esp + 0xc0]
mov byte [esp + 0x130], al
mov byte [esp + 0x258], pe_nt_image_headers32
mov byte [esp + 0x259], 9
mov eax, 2
mov byte [esp + eax + 0x258], 0
add eax, 1
cmp eax, 5
jne 0x4116b8
xor eax, eax
cmp eax, 5
jae 0x4116fe
mov dl, byte [esp + eax + 0x258]
movzx esi, dl
mov ecx, eax
add ecx, 0xb9be7082
mov edi, ecx
and edi, esi
shl edi, 1
sub ecx, edi
mov edi, dword [esp + 0x34]
add cl, dl
add cl, 0x76
mov byte [esp + eax + 0x258], cl
add eax, 1
jmp 0x4116ca
lea eax, [esp + 0x258]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018c0
cmp eax, 0
setne cl
test cl, 1
jne 0x411725
jmp 0x411854
mov dword [esp + 0x288], eax
mov dword [esp], eax
call fcn.004130d0
mov ebx, eax
mov eax, ebx
and eax, 1
shl eax, 1
mov dword [esp + 0x24c], ebx
xor ebx, 1
add ebx, eax
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411761
mov ecx, eax
mov dword [esp], ecx
call fcn.00408740
mov esi, eax
xor eax, eax
mov dword [esp], esi
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x288]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040af10
xor eax, eax
lea eax, [esp + 0xbc]
mov dword [esp], 0
mov dword [esp + 0x248], esi
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 [0x44a878]
sub esp, 0x18
mov eax, dword [esp + 0xbc]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4117ec
mov ecx, eax
mov dword [esp], ecx
call fcn.00408740
mov ebx, dword [0x44a878]
mov ecx, dword [esp + 0xbc]
xor edx, edx
lea edx, [esp + 0xbc]
mov dword [esp], 0
mov esi, dword [esp + 0x248]
mov dword [esp + 4], esi
mov esi, eax
mov eax, dword [esp + 0x24c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call ebx
sub esp, 0x18
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x248]
mov dword [esp], eax
call fcn.00408750
jmp 0x41184f
jmp 0x411d5d
call fcn.00408e70
mov esi, eax
and esi, 0xf
add esi, 0x10
xor ebx, ebx
lea ecx, [esp + 0x3d4]
cmp ebx, esi
jb 0x411a59
mov word [ecx], 0
mov al, byte [esp + 0xa4]
mov byte [esp + 0x134], al
mov byte [esp + 0xa8], 0x57
mov byte [esp + 0xa9], 0x3b
mov byte [esp + 0xaa], 0x86
mov byte [esp + 0xab], 0x39
mov byte [esp + 0xac], 0x73
mov byte [esp + 0xad], 0x27
mov byte [esp + 0xae], 0x95
mov byte [esp + 0xaf], 0x25
mov byte [esp + 0xb0], 0x94
mov byte [esp + 0xb1], 0x23
mov byte [esp + 0xb2], 0x49
mov byte [esp + 0xb3], 0x21
mov byte [esp + 0xb4], 0x84
mov byte [esp + 0xb5], 0x2f
mov byte [esp + 0xb6], 0x2e
mov byte [esp + 0xb7], 0x2d
mov eax, 0x10
mov byte [esp + eax + 0xa8], 0
add eax, 1
cmp eax, 0x11
jne 0x41190a
xor eax, eax
cmp eax, 0x11
jae 0x411959
movzx edx, byte [esp + eax + 0xa8]
mov ecx, eax
add ecx, 0x8b
mov esi, 0x74
sub esi, eax
and esi, edx
xor edx, 0xffffffff
and ecx, edx
or ecx, esi
add cl, 0x49
mov byte [esp + eax + 0xa8], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x41191c
lea eax, [esp + 0x374]
lea ecx, [esp + 0xa8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a1b0
lea ecx, [esp + 0x3d4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a1b0
mov ebx, eax
lea eax, [esp + 0x374]
sub ebx, eax
sar ebx, 1
xor eax, eax
lea eax, [esp + 0x374]
lea ecx, [esp + 0xa0]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ecx
call dword [0x44a878]
sub esp, 0x18
mov eax, dword [esp + 0xa0]
sub eax, 0xdb472fa3
add eax, 4
add eax, 0xdb472fa3
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4119f9
mov ecx, eax
mov dword [esp], ecx
call fcn.00408740
mov esi, dword [0x44a878]
mov ecx, dword [esp + 0xa0]
xor edx, edx
lea edx, [esp + 0x374]
mov dword [esp], 0
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
lea eax, [esp + 0xa0]
mov dword [esp + 0x14], eax
call esi
sub esp, 0x18
mov ecx, dword [esp + 0x5c]
cmp ecx, 0
sete al
test al, 1
mov ebx, dword [esp + 0x2c]
jne 0x411a94
jmp 0x411b7a
mov dword [esp + 0x27c], ecx
call fcn.00408e70
mov ecx, 0x24
cdq
idiv ecx
movsx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov edx, dword [esp + 0x27c]
mov ecx, edx
add ecx, 2
mov word [edx], ax
xor eax, eax
sub eax, ebx
add eax, 0xffffffff
xor ebx, ebx
sub ebx, eax
jmp 0x41186a
mov al, byte [esp + 0x9c]
mov byte [esp + 0x138], al
mov byte [esp + 0x60], 0x76
mov byte [esp + 0x61], 0x5b
mov byte [esp + 0x62], 0xa1
mov byte [esp + 0x63], 0x59
mov byte [esp + 0x64], 0xd0
mov byte [esp + 0x65], 0x5f
mov byte [esp + 0x66], 0xa5
mov byte [esp + 0x67], 0x5d
mov byte [esp + 0x68], 0x5c
mov byte [esp + 0x69], 0x53
mov eax, 0xa
mov esi, dword [esp + 0x28]
mov byte [esp + eax + 0x60], 0
add eax, 1
cmp eax, 0xc
jne 0x411add
xor eax, eax
cmp eax, 0xc
jae 0x411b61
movzx edx, byte [esp + eax + 0x60]
mov esi, eax
shl esi, 1
and esi, 0x22992e1e
mov edi, eax
shl edi, 1
and edi, 0x22992e1e
mov ecx, eax
add ecx, 0x914c970f
sub ecx, edi
add ecx, esi
mov edi, ecx
and edi, edx
mov esi, edi
and esi, 2
xor esi, 2
mov ebx, edi
and ebx, 0xfd
imul ebx, esi
mov esi, edi
and esi, 2
or edi, 2
imul edi, esi
mov esi, dword [esp + 0x28]
add edi, ebx
mov ebx, dword [esp + 0x2c]
add ecx, edx
mov edx, ecx
sub edx, edi
shl ecx, 1
and ecx, 2
xor edx, 1
add edx, 0xb4
add edx, ecx
mov byte [esp + eax + 0x60], dl
add eax, 1
jmp 0x411aec
lea eax, [esp + 0x60]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.004134b0
mov edi, dword [esp + 0x34]
jmp 0x411d5d
cmp ecx, 1
sete al
mov esi, dword [esp + 0x28]
test al, 1
jne 0x411b8d
jmp 0x411c51
mov al, byte [esp + 0x98]
mov byte [esp + 0x13c], al
mov byte [esp + 0x22c], 0xc2
mov byte [esp + 0x22d], 0x9f
mov byte [esp + 0x22e], 0x3a
mov byte [esp + 0x22f], 0x91
mov byte [esp + 0x230], 0xc
mov byte [esp + 0x231], 0x93
mov byte [esp + 0x232], 0xe
mov byte [esp + 0x233], 0x95
mov byte [esp + 0x234], 0x94
mov byte [esp + 0x235], 0x97
mov eax, 0xa
mov byte [esp + eax + 0x22c], 0
add eax, 1
cmp eax, 0xd
jne 0x411bf0
xor eax, eax
cmp eax, 0xd
jae 0x411c39
movzx edx, byte [esp + eax + 0x22c]
mov esi, eax
add esi, 0x25
mov ecx, edx
xor ecx, 0xffffffff
and esi, ecx
mov ecx, 0xda
sub ecx, eax
and ecx, edx
or ecx, esi
mov esi, dword [esp + 0x28]
add cl, 0x47
mov byte [esp + eax + 0x22c], cl
add eax, 1
jmp 0x411c02
lea eax, [esp + 0x22c]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.004134b0
jmp 0x411d5d
cmp ecx, 2
jne 0x411d5d
mov al, byte [esp + 0x94]
mov byte [esp + 0x140], al
mov byte [esp + 0x21c], 0xa
mov byte [esp + 0x21d], 0x39
mov byte [esp + 0x21e], 0xc6
mov byte [esp + 0x21f], 0x37
mov byte [esp + 0x220], 0xbb
mov byte [esp + 0x221], 0x35
mov byte [esp + 0x222], 3
mov byte [esp + 0x223], 0x33
mov byte [esp + 0x224], 0x30
mov byte [esp + 0x225], 0x31
mov eax, 0xa
mov byte [esp + eax + 0x21c], 0
add eax, 1
cmp eax, 0xf
jne 0x411cbd
xor eax, eax
jmp 0x411cd1
cmp eax, 0xf
jae 0x411d40
movzx edx, byte [esp + eax + 0x21c]
mov ecx, 0x3fe90f09
sub ecx, eax
mov esi, eax
add esi, 0xf6
and esi, edx
xor ecx, edx
add ecx, edx
sub ecx, esi
mov esi, 9
sub esi, eax
mov edi, 9
sub edi, eax
or edi, esi
and edi, edx
xor edi, 0xffffffff
and ecx, edi
mov edx, ecx
shl edx, 1
xor edx, 0xffffffff
mov esi, ecx
add esi, edx
and esi, 0x3f8d4b31
xor ecx, 0xffffffff
or ecx, 0x3f8d4b31
add ecx, esi
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
mov byte [esp + eax + 0x21c], cl
add eax, 1
jmp 0x411cd1
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x28]
jmp 0x411d4a
lea eax, [esp + 0x21c]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.004134b0
lea eax, [esp + 0x254]
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.0043cba0
mov dword [esp + 0x250], eax
cmp eax, 0
jl 0x411ee9
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x260]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x254]
xor esi, esi
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0043d3e0
mov dword [esp + 0x250], eax
mov eax, dword [esp + 0x254]
mov dword [esp + 0x2a8], eax
mov al, byte [esp + 0x10c]
mov byte [esp + 0x16c], al
mov byte [esp + 0x110], 0x65
mov byte [esp + 0x111], 0x66
mov byte [esp + 0x112], 0x67
mov byte [esp + 0x113], 0x60
mov eax, 4
mov byte [esp + eax + 0x110], 0
add eax, 1
cmp eax, 7
jne 0x411e22
xor eax, eax
cmp eax, 7
jae 0x411e67
movzx esi, byte [esp + eax + 0x110]
mov ecx, 0xe6
sub ecx, eax
or ecx, esi
mov edx, 0xe6
sub edx, eax
and edx, esi
xor ecx, 0xffffffff
or edx, ecx
add dl, 0x83
mov byte [esp + eax + 0x110], dl
add eax, 1
jmp 0x411e34
mov ecx, dword [esp + 0x110]
xor ebx, ebx
mov esi, dword [esp + 0x28]
cmp ebx, dword [0x44a87c]
jb 0x411e7e
jmp 0x411ee3
mov eax, dword [0x44a880]
cmp dword [eax + ebx*8], 0xb62b8d10
sete dl
test dl, 1
jne 0x411e94
jmp 0x411ed7
mov eax, dword [eax + ebx*8 + 4]
cmp eax, ecx
je 0x411ed7
mov dword [esp + 0x29c], ecx
mov ecx, dword [0x44a884]
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 byte [esp + 0x49], dl
call fcn.004395d0
mov dl, byte [esp + 0x49]
mov ecx, dword [esp + 0x29c]
test dl, 1
je 0x411ede
jmp 0x411ee3
add ebx, 1
jmp 0x411e74
mov ebx, dword [esp + 0x2c]
jmp 0x411ee9
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call fcn.00436720
mov dword [esp + 0x44], 0
cmp dword [esp + 0x250], 0
setge al
test al, 1
mov ecx, dword [esp + 0x5c]
jne 0x411f24
jmp 0x411f12
mov dword [esp + 0x38], 0
mov eax, 4
jmp 0x412664
cmp ecx, 1
sete al
jmp 0x411f2c
test al, 1
jne 0x411f35
jmp 0x412315
mov al, byte [esp + 0x90]
mov byte [esp + 0x144], al
mov byte [esp + 0x214], 0x7a
mov byte [esp + 0x215], 0x71
mov byte [esp + 0x216], 0xe6
mov eax, 3
mov byte [esp + eax + 0x214], 0
add eax, 1
cmp eax, 5
jne 0x411f60
mov dword [esp + 0x28], esi
xor eax, eax
cmp eax, 5
jae 0x411fbc
movzx edx, byte [esp + eax + 0x214]
mov esi, eax
xor esi, 0xc90d99a6
mov ecx, eax
or ecx, 0x36f26659
and ecx, esi
mov esi, eax
or esi, 0x36f26659
add ecx, esi
xor ecx, edx
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, 0x42
add ecx, edx
mov byte [esp + eax + 0x214], cl
add eax, 1
jmp 0x411f76
lea eax, [esp + 0x214]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018c0
mov dword [esp + 0x70], eax
mov al, byte [esp + 0x8c]
mov byte [esp + 0x148], al
mov byte [esp + 0x4c], 0x33
mov byte [esp + 0x4d], 5
mov byte [esp + 0x4e], 0x8a
mov eax, 3
mov esi, dword [esp + 0x28]
mov byte [esp + eax + 0x4c], 0
add eax, 1
cmp eax, 4
jne 0x411ffd
xor eax, eax
cmp eax, 4
jae 0x412050
movzx edx, byte [esp + eax + 0x4c]
mov ecx, eax
add ecx, 0xf90f0ae3
mov esi, edx
add esi, 1
mov edi, edx
xor edi, 0xffffffff
mov ebx, ecx
or ebx, edi
add ebx, esi
mov esi, dword [esp + 0x28]
shl ebx, 1
add ecx, edx
sub ecx, ebx
add cl, 0x91
mov byte [esp + eax + 0x4c], cl
mov ecx, eax
and ecx, 1
xor eax, 0xffffffff
or eax, 1
sub ecx, eax
mov eax, ecx
jmp 0x41200c
lea eax, [esp + 0x4c]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018c0
mov dword [esp + 0x6c], eax
mov dword [esp], esi
call fcn.00413500
mov ebx, eax
cmp dword [esp + 0x70], 0
setne al
xor edi, edi
test al, 1
mov byte [esp + 0x4b], al
jne 0x412086
jmp 0x4120a5
mov eax, dword [esp + 0x70]
mov dword [esp], eax
call fcn.00408860
mov edi, eax
sub edi, 0x89c16483
add edi, 1
add edi, 0x89c16483
jmp 0x4120a5
cmp dword [esp + 0x6c], 0
setne cl
xor eax, eax
mov byte [esp + 0x3f], cl
test cl, 1
jne 0x4120ba
jmp 0x4120cb
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
call fcn.00408860
add eax, 1
jmp 0x4120cb
add ebx, 9
mov ecx, ebx
and ecx, edi
shl ecx, 1
xor ebx, edi
add ebx, ecx
mov dword [esp + 0x2b4], eax
xor eax, 0xffffffff
sub eax, 0xffffffff
sub ebx, eax
add ebx, 0xa2c26141
add ebx, 1
sub ebx, 0xa2c26141
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x41210e
mov ecx, eax
mov dword [esp], ecx
call fcn.00408740
mov dword [esp + 0x38], eax
mov al, byte [esp + 0x88]
mov byte [esp + 0x14c], al
mov byte [esp + 0x1fc], 0x62
mov byte [esp + 0x1fd], 0xfb
mov byte [esp + 0x1fe], 0x61
mov byte [esp + 0x1ff], 0xf9
mov byte [esp + 0x200], 0x6a
mov byte [esp + 0x201], 0xe7
mov byte [esp + 0x202], 0xa
mov byte [esp + 0x203], 0xe5
mov byte [esp + 0x204], 0x70
mov byte [esp + 0x205], 0xe3
mov byte [esp + 0x206], 0x76
mov byte [esp + 0x207], 0xe1
mov byte [esp + 0x208], 0x3d
mov byte [esp + 0x209], 0xef
mov byte [esp + 0x20a], 0x30
mov byte [esp + 0x20b], 0xed
mov byte [esp + 0x20c], 0xec
mov byte [esp + 0x20d], 0xeb
mov eax, 0x12
mov byte [esp + eax + 0x1fc], 0
add eax, 1
cmp eax, 0x15
jne 0x4121bd
xor eax, eax
cmp eax, 0x15
jae 0x41223c
movzx esi, byte [esp + eax + 0x1fc]
mov ebx, eax
add ebx, 0x35c4002b
mov ecx, ebx
shl ecx, 1
mov edx, eax
add edx, 0x35c4002a
sub edx, ecx
and edx, 0x7b311a73
and ebx, 0x84cee58c
mov ecx, esi
and ecx, 0x73
or ecx, 0x4c62008
and esi, 0x8c
xor esi, ecx
mov ecx, esi
xor ecx, 0x7b
or edx, ebx
mov ebx, edx
xor ebx, 0xffffffff
and ecx, ebx
xor esi, 0x84
and edx, esi
mov esi, dword [esp + 0x28]
or ecx, edx
add cl, 0x29
mov byte [esp + eax + 0x1fc], cl
add eax, 1
jmp 0x4121cf
lea eax, [esp + 0x1fc]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040a1b0
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.0040a1b0
mov ecx, esi
mov esi, eax
add esi, 2
mov word [eax], 0x22
mov dword [esp], ecx
call fcn.00408750
mov al, byte [esp + 0x3f]
test byte [esp + 0x4b], 1
jne 0x412299
mov ebx, esi
mov edi, dword [esp + 0x34]
jmp 0x4122cf
mov ebx, esi
add ebx, 2
mov word [esi], 0x2c
xor eax, eax
mov dword [esp], ebx
mov dword [esp + 4], edi
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040af10
shl eax, 1
add ebx, eax
mov edi, dword [esp + 0x34]
mov al, byte [esp + 0x3f]
jmp 0x4122cf
test al, 1
jne 0x4122d5
jmp 0x412308
mov eax, ebx
add eax, 2
mov word [ebx], 0x2c
jmp 0x4122e1
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x2b4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040af10
jmp 0x412308
xor esi, esi
xor ecx, ecx
mov ebx, dword [esp + 0x2c]
jmp 0x412662
mov dword [esp + 0x38], 0
cmp ecx, 2
je 0x412327
jmp 0x412662
mov dword [esp], esi
call fcn.00413500
xor ecx, ecx
sub ecx, eax
mov eax, 0x1d
sub eax, ecx
sub eax, 0xffffffff
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412353
mov ecx, eax
mov dword [esp], ecx
call fcn.00408740
mov dword [esp + 0x38], eax
mov al, byte [esp + 0x7c]
mov byte [esp + 0x150], al
mov byte [esp + 0x80], 2
mov byte [esp + 0x81], 0x21
mov byte [esp + 0x82], 0x22
mov byte [esp + 0x83], 0x23
mov eax, 4
mov byte [esp + eax + 0x80], 0
add eax, 1
cmp eax, 7
jne 0x41238f
xor eax, eax
cmp eax, 7
jae 0x412413
movzx edx, byte [esp + eax + 0x80]
mov ecx, eax
add ecx, 0xc359cc78
mov edi, ecx
and edi, edx
mov dword [esp + 0x28], esi
mov esi, edi
and esi, 2
xor esi, 2
mov ebx, edi
and ebx, 0xfd
imul ebx, esi
mov esi, edi
and esi, 2
or edi, 2
imul edi, esi
add edi, ebx
mov ebx, dword [esp + 0x2c]
add ecx, edx
sub ecx, edi
mov edi, dword [esp + 0x34]
mov edx, ecx
xor edx, 0x58
mov esi, ecx
or esi, 0x27
and esi, edx
shl esi, 1
xor ecx, 0xa7
add ecx, esi
mov esi, dword [esp + 0x28]
add cl, 1
mov byte [esp + eax + 0x80], cl
add eax, 1
jmp 0x4123a1
mov al, byte [esp + 0x78]
mov byte [esp + 0x154], al
mov byte [esp + 0x184], 0x40
mov byte [esp + 0x185], 0xf1
mov byte [esp + 0x186], 0x45
mov byte [esp + 0x187], 0xf3
mov byte [esp + 0x188], 0x43
mov byte [esp + 0x189], 0xfd
mov byte [esp + 0x18a], 0x53
mov byte [esp + 0x18b], 0xff
mov byte [esp + 0x18c], 0x4a
mov byte [esp + 0x18d], 0xf9
mov byte [esp + 0x18e], 0x49
mov byte [esp + 0x18f], 0xfb
mov byte [esp + 0x190], 0x6c
mov byte [esp + 0x191], 0xc5
mov byte [esp + 0x192], 0x6b
mov byte [esp + 0x193], 0xc7
mov byte [esp + 0x194], 0x74
mov byte [esp + 0x195], 0xc1
mov byte [esp + 0x196], 0x76
mov byte [esp + 0x197], 0xc3
mov byte [esp + 0x198], 0xac
mov byte [esp + 0x199], 0xcd
mov byte [esp + 0x19a], 0xbb
mov byte [esp + 0x19b], 0xcf
mov byte [esp + 0x19c], 0x65
mov byte [esp + 0x19d], 0xc9
mov byte [esp + 0x19e], 0x72
mov byte [esp + 0x19f], 0xcb
mov byte [esp + 0x1a0], 0x79
mov byte [esp + 0x1a1], 0xd5
mov byte [esp + 0x1a2], 0x75
mov byte [esp + 0x1a3], 0xd7
mov byte [esp + 0x1a4], 0xb0
mov byte [esp + 0x1a5], 0xd1
mov byte [esp + 0x1a6], 0x70
mov byte [esp + 0x1a7], 0xd3
mov byte [esp + 0x1a8], 0x65
mov byte [esp + 0x1a9], 0xdd
mov byte [esp + 0x1aa], 0x6e
mov byte [esp + 0x1ab], 0xdf
mov byte [esp + 0x1ac], 0x79
mov byte [esp + 0x1ad], 0xd9
mov byte [esp + 0x1ae], 0x69
mov byte [esp + 0x1af], 0xdb
mov byte [esp + 0x1b0], 0x97
mov byte [esp + 0x1b1], 0x25
mov byte [esp + 0x1b2], 0x46
mov byte [esp + 0x1b3], 0x27
mov byte [esp + 0x1b4], 0x55
mov byte [esp + 0x1b5], 0x21
mov byte [esp + 0x1b6], 0x8c
mov byte [esp + 0x1b7], 0x23
mov byte [esp + 0x1b8], 0x4c
mov byte [esp + 0x1b9], 0x2d
mov byte [esp + 0x1ba], 0x4c
mov byte [esp + 0x1bb], 0x2f
mov byte [esp + 0x1bc], 0x28
mov byte [esp + 0x1bd], 0x29
mov eax, 0x3a
mov byte [esp + eax + 0x184], 0
add eax, 1
cmp eax, 0x3e
jne 0x4125f3
xor eax, eax
cmp eax, 0x3e
jae 0x412627
mov cl, byte [esp + eax + 0x184]
mov dl, al
add dl, 0x54
xor dl, cl
add dl, 0x5c
mov byte [esp + eax + 0x184], dl
add eax, 1
jmp 0x412605
lea eax, [esp + 0x184]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040a1b0
mov dword [esp], eax
mov dword [esp + 4], esi
call fcn.0040a1b0
lea ecx, [esp + 0x80]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a1b0
mov ecx, 2
xor eax, eax
cmp eax, 0
sete al
test al, 1
mov al, byte [esp + 0x33]
jne 0x412980
jmp 0x4130b1
call fcn.00413520
xor ebx, 1
mov ecx, dword [esp + 0x5c]
mov eax, ecx
xor eax, 2
or ebx, eax
sete al
test al, 1
mov ebx, dword [esp + 0x2c]
jne 0x4126ac
mov dword [esp + 0x38], 0
xor esi, esi
mov al, byte [esp + 0x33]
jmp 0x412980
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call fcn.004130d0
mov ebx, eax
add ebx, 1
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4126d5
mov ecx, eax
mov dword [esp], ecx
call fcn.00408740
mov esi, eax
mov eax, dword [esp + 0x44]
xor ecx, ecx
mov dword [esp], esi
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040af10
mov ecx, dword [esp + 0x260]
mov eax, ecx
and eax, 0x18
or ecx, 0x18
add 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 0x412730
mov ecx, eax
mov dword [esp], ecx
call fcn.00408740
mov cl, byte [esp + 0x74]
mov byte [esp + 0x158], cl
mov byte [esp + 0x1c4], 0xe0
mov byte [esp + 0x1c5], 0x91
mov byte [esp + 0x1c6], 0xe5
mov byte [esp + 0x1c7], 0x93
mov byte [esp + 0x1c8], 0x23
mov byte [esp + 0x1c9], 0xad
mov byte [esp + 0x1ca], 0xd3
mov byte [esp + 0x1cb], 0xaf
mov byte [esp + 0x1cc], 0xda
mov byte [esp + 0x1cd], 0xa9
mov byte [esp + 0x1ce], 0xd9
mov byte [esp + 0x1cf], 0xab
mov byte [esp + 0x1d0], 0xdc
mov byte [esp + 0x1d1], 0xa5
mov byte [esp + 0x1d2], 0xdb
mov byte [esp + 0x1d3], 0xa7
mov byte [esp + 0x1d4], 0xd4
mov byte [esp + 0x1d5], 0xa1
mov byte [esp + 0x1d6], 0xd6
mov byte [esp + 0x1d7], 0xa3
mov byte [esp + 0x1d8], 0x9c
mov byte [esp + 0x1d9], 0xbd
mov byte [esp + 0x1da], 0x8b
mov byte [esp + 0x1db], 0xbf
mov byte [esp + 0x1dc], 0xc5
mov byte [esp + 0x1dd], 0xb9
mov byte [esp + 0x1de], 0x32
mov byte [esp + 0x1df], 0xbb
mov byte [esp + 0x1e0], 0xc9
mov byte [esp + 0x1e1], 0xb5
mov byte [esp + 0x1e2], 0xd5
mov byte [esp + 0x1e3], 0xb7
mov byte [esp + 0x1e4], 0x90
mov byte [esp + 0x1e5], 0xb1
mov byte [esp + 0x1e6], 0xd0
mov byte [esp + 0x1e7], 0xb3
mov byte [esp + 0x1e8], 0x45
mov byte [esp + 0x1e9], 0xcd
mov byte [esp + 0x1ea], 0xbe
mov byte [esp + 0x1eb], 0xcf
mov byte [esp + 0x1ec], 0xa9
mov byte [esp + 0x1ed], 0xc9
mov byte [esp + 0x1ee], 0xb9
mov byte [esp + 0x1ef], 0xcb
mov byte [esp + 0x1f0], 0xb7
mov byte [esp + 0x1f1], 0xc5
mov byte [esp + 0x1f2], 0xe6
mov byte [esp + 0x1f3], 0xc7
mov byte [esp + 0x1f4], 0xc0
mov byte [esp + 0x1f5], 0xc1
mov ecx, 0x32
mov byte [esp + ecx + 0x1c4], 0
add ecx, 1
cmp ecx, 0x37
jne 0x4128d8
jmp 0x4128ea
xor edi, edi
mov dword [esp + 0x38], eax
jmp 0x4128f2
cmp edi, 0x37
jae 0x412943
movzx edx, byte [esp + edi + 0x1c4]
mov ecx, edi
add ecx, 0x22bf0b1c
mov eax, esi
mov esi, ecx
and esi, edx
shl esi, 1
sub ecx, esi
add ecx, edx
add ecx, 0x5244c873
mov edx, ecx
and edx, 1
mov esi, ecx
and esi, 0xfe
mov ebx, ecx
xor ebx, 1
add ecx, ebx
add ecx, edx
sub ecx, esi
mov esi, eax
mov eax, dword [esp + 0x38]
mov byte [esp + edi + 0x1c4], cl
add edi, 1
jmp 0x4128f2
lea ecx, [esp + 0x1c4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a1b0
mov ebx, dword [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], esi
call fcn.0040a1b0
jmp 0x412968
mov dword [esp], esi
call fcn.00408750
xor esi, esi
mov edi, dword [esp + 0x34]
mov al, byte [esp + 0x33]
mov ecx, dword [esp + 0x5c]
jmp 0x412980
test ecx, ecx
je 0x4129a1
jmp 0x412986
mov eax, ecx
sub eax, 1
je 0x412b5b
jmp 0x412993
sub ecx, 2
je 0x412dd1
jmp 0x413085
test al, 1
jne 0x4129aa
jmp 0x412b5b
lea edi, [esp + 0x330]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov dword [esp + 0x330], 0x44
mov eax, dword [0x44a870]
mov dword [esp], eax
mov dword [esp + 4], 0x38c42730
call fcn.0043c370
test eax, eax
setne cl
jne 0x4129e5
jmp 0x4129e3
xor eax, eax
xor ecx, ecx
lea ecx, [esp + 0x330]
lea edx, [esp + 0x2dc]
mov dword [esp], esi
mov edi, dword [esp + 0x38]
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
mov edi, dword [esp + 0x34]
je 0x412b52
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x2ac], eax
mov al, byte [esp + 0x100]
mov byte [esp + 0x170], al
mov byte [esp + 0x104], 0x65
mov byte [esp + 0x105], 0x66
mov byte [esp + 0x106], 0x67
mov byte [esp + 0x107], 0x60
mov eax, 4
mov byte [esp + eax + 0x104], 0
add eax, 1
cmp eax, 7
jne 0x412a8b
xor eax, eax
cmp eax, 7
jae 0x412ad4
mov edi, esi
movzx esi, byte [esp + eax + 0x104]
mov ecx, 0xe6
sub ecx, eax
or ecx, esi
mov edx, 0xe6
sub edx, eax
and edx, esi
mov esi, edi
xor ecx, 0xffffffff
or edx, ecx
add dl, 0x83
mov byte [esp + eax + 0x104], dl
add eax, 1
jmp 0x412a9d
mov ecx, dword [esp + 0x104]
xor edi, edi
cmp edi, dword [0x44a87c]
jb 0x412ae7
jmp 0x412b4c
mov eax, dword [0x44a880]
cmp dword [eax + edi*8], 0xb62b8d10
sete bl
test bl, 1
jne 0x412afd
jmp 0x412b38
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x412b38
mov dword [esp + 0x28c], ecx
mov ecx, dword [0x44a884]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0xc], eax
call fcn.004395d0
mov ecx, dword [esp + 0x28c]
test bl, 1
je 0x412b43
mov ebx, dword [esp + 0x2c]
jmp 0x412b4c
add edi, 1
mov ebx, dword [esp + 0x2c]
jmp 0x412add
mov edi, dword [esp + 0x34]
jmp 0x412b52
jmp 0x412b54
jmp 0x412b56
jmp 0x413085
mov eax, dword [0x44a870]
mov dword [esp], eax
mov dword [esp + 4], 0xe117db1e
call fcn.0043c370
test eax, eax
setne cl
mov ecx, dword [esp + 0x44]
xor edx, edx
lea edx, [0x41e510]
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 0x412bbd
jmp 0x412dcc
mov dword [esp + 0x2c4], 0xffffffff
mov dword [esp + 0x2c0], 0xdc3cba00
mov cl, byte [esp + 0x15c]
mov byte [esp + 0x168], cl
mov byte [esp + 0x160], 0x65
mov byte [esp + 0x161], 0x66
mov byte [esp + 0x162], 0x67
mov byte [esp + 0x163], 0x60
mov ecx, 4
mov byte [esp + ecx + 0x160], 0
add ecx, 1
cmp ecx, 7
jne 0x412c06
xor ecx, ecx
cmp ecx, 7
jae 0x412c4f
mov edi, esi
movzx esi, byte [esp + ecx + 0x160]
mov edx, 0xe6
sub edx, ecx
or edx, esi
mov ebx, 0xe6
sub ebx, ecx
and ebx, esi
mov esi, edi
xor edx, 0xffffffff
or ebx, edx
add bl, 0x83
mov byte [esp + ecx + 0x160], bl
add ecx, 1
jmp 0x412c18
mov edi, dword [esp + 0x160]
xor ebx, ebx
mov dword [esp + 0x28], esi
cmp ebx, dword [0x44a87c]
jb 0x412c66
jmp 0x412cd0
mov ecx, dword [0x44a880]
cmp dword [ecx + ebx*8], 0x4e66b5a3
sete dl
test dl, 1
jne 0x412c7d
jmp 0x412cc4
mov ecx, dword [ecx + ebx*8 + 4]
cmp ecx, edi
je 0x412cc4
mov byte [esp + 0x4a], dl
mov edx, dword [0x44a884]
xor esi, esi
lea esi, [esp + 0x2c0]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xc
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], esi
mov esi, eax
call fcn.004395d0
mov dl, byte [esp + 0x4a]
mov eax, esi
test dl, 1
je 0x412ccb
jmp 0x412cd0
add ebx, 1
jmp 0x412c5c
mov cl, byte [esp + 0xf4]
mov byte [esp + 0x174], cl
mov byte [esp + 0xf8], 0x65
mov byte [esp + 0xf9], 0x66
mov byte [esp + 0xfa], 0x67
mov byte [esp + 0xfb], 0x60
mov ecx, 4
mov byte [esp + ecx + 0xf8], 0
add ecx, 1
cmp ecx, 7
jne 0x412d03
xor ecx, ecx
cmp ecx, 7
jae 0x412d48
movzx esi, byte [esp + ecx + 0xf8]
mov edx, 0xe6
sub edx, ecx
or edx, esi
mov ebx, 0xe6
sub ebx, ecx
and ebx, esi
xor edx, 0xffffffff
or ebx, edx
add bl, 0x83
mov byte [esp + ecx + 0xf8], bl
add ecx, 1
jmp 0x412d15
mov edi, dword [esp + 0xf8]
xor ebx, ebx
mov esi, dword [esp + 0x28]
cmp ebx, dword [0x44a87c]
jb 0x412d5f
jmp 0x412dc4
mov ecx, dword [0x44a880]
cmp dword [ecx + ebx*8], 0xb62b8d10
sete dl
mov byte [esp + 0x48], dl
test dl, 1
jne 0x412d7a
jmp 0x412db6
mov ecx, dword [ecx + ebx*8 + 4]
cmp ecx, edi
je 0x412db6
mov dword [esp + 0x290], edi
mov edx, dword [0x44a884]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 4
mov dword [esp + 0xc], eax
mov esi, eax
call fcn.004395d0
mov edi, dword [esp + 0x290]
mov eax, esi
mov esi, dword [esp + 0x28]
test byte [esp + 0x48], 1
je 0x412dbf
jmp 0x412dc4
add ebx, 1
jmp 0x412d55
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x34]
jmp 0x413085
lea edi, [esp + 0x2ec]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov dword [esp + 0x2ec], 0x44
mov eax, dword [0x44a870]
mov dword [esp], eax
mov dword [esp + 4], 0x38c42730
call fcn.0043c370
test eax, eax
setne cl
jne 0x412e0c
jmp 0x412e0a
xor eax, eax
xor ecx, ecx
lea ecx, [esp + 0x2ec]
lea edx, [esp + 0x2cc]
mov dword [esp], 0
mov edi, dword [esp + 0x38]
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
mov edi, dword [esp + 0x34]
jmp 0x412e6e
cmp eax, 0
je 0x413085
mov eax, dword [esp + 0x2d0]
mov dword [esp + 0x2a4], eax
mov al, byte [esp + 0xe8]
mov byte [esp + 0x178], al
mov byte [esp + 0xec], 0x65
mov byte [esp + 0xed], 0x66
mov byte [esp + 0xee], 0x67
mov byte [esp + 0xef], 0x60
mov eax, 4
mov byte [esp + eax + 0xec], 0
add eax, 1
cmp eax, 7
jne 0x412eb8
xor eax, eax
cmp eax, 7
jae 0x412f01
mov edi, esi
movzx esi, byte [esp + eax + 0xec]
mov ecx, 0xe6
sub ecx, eax
or ecx, esi
mov edx, 0xe6
sub edx, eax
and edx, esi
mov esi, edi
xor ecx, 0xffffffff
or edx, ecx
add dl, 0x83
mov byte [esp + eax + 0xec], dl
add eax, 1
jmp 0x412eca
mov ecx, dword [esp + 0xec]
xor edi, edi
cmp edi, dword [0x44a87c]
jb 0x412f14
jmp 0x412f79
mov eax, dword [0x44a880]
cmp dword [eax + edi*8], 0xb62b8d10
sete bl
test bl, 1
jne 0x412f2a
jmp 0x412f65
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x412f65
mov dword [esp + 0x298], ecx
mov ecx, dword [0x44a884]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x2a4]
mov dword [esp + 0xc], eax
call fcn.004395d0
mov ecx, dword [esp + 0x298]
test bl, 1
je 0x412f70
mov ebx, dword [esp + 0x2c]
jmp 0x412f79
add edi, 1
mov ebx, dword [esp + 0x2c]
jmp 0x412f0a
mov eax, dword [esp + 0x2cc]
mov dword [esp + 0x2a0], eax
mov al, byte [esp + 0xdc]
mov byte [esp + 0x17c], al
mov byte [esp + 0xe0], 0x65
mov byte [esp + 0xe1], 0x66
mov byte [esp + 0xe2], 0x67
mov byte [esp + 0xe3], 0x60
mov eax, 4
mov byte [esp + eax + 0xe0], 0
add eax, 1
cmp eax, 7
jne 0x412fba
mov dword [esp + 0x28], esi
xor eax, eax
cmp eax, 7
jae 0x413003
movzx esi, byte [esp + eax + 0xe0]
mov ecx, 0xe6
sub ecx, eax
or ecx, esi
mov edx, 0xe6
sub edx, eax
and edx, esi
xor ecx, 0xffffffff
or edx, ecx
add dl, 0x83
mov byte [esp + eax + 0xe0], dl
add eax, 1
jmp 0x412fd0
mov ecx, dword [esp + 0xe0]
xor edi, edi
mov esi, dword [esp + 0x28]
cmp edi, dword [0x44a87c]
jb 0x41301a
jmp 0x41307f
mov eax, dword [0x44a880]
cmp dword [eax + edi*8], 0xb62b8d10
sete bl
test bl, 1
jne 0x413030
jmp 0x41306b
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x41306b
mov dword [esp + 0x294], ecx
mov ecx, dword [0x44a884]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x2a0]
mov dword [esp + 0xc], eax
call fcn.004395d0
mov ecx, dword [esp + 0x294]
test bl, 1
je 0x413076
mov ebx, dword [esp + 0x2c]
jmp 0x41307f
add edi, 1
mov ebx, dword [esp + 0x2c]
jmp 0x413010
mov edi, dword [esp + 0x34]
jmp 0x413085
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call fcn.00436720
cmp esi, 0
je 0x41309e
mov dword [esp], esi
call fcn.00408750
mov eax, dword [esp + 0x38]
cmp eax, 0
je 0x4130af
mov dword [esp], eax
call fcn.00408750
jmp 0x4130b1
jmp 0x4130b3
add edi, 1
jmp 0x41116c
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret