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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x818
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00401990
mov esi, eax
cmp esi, 0
jne 0x410e68
xor eax, eax
jmp 0x412ea4
xor ebx, ebx
jmp 0x410e6c
mov dword [esp], esi
call fcn.00401b60
cmp ebx, eax
jb 0x410e7f
mov al, 1
jmp 0x412ea4
mov dword [esp], esi
mov dword [esp + 4], ebx
call fcn.00401b70
mov dword [esp + 0x38], eax
mov al, byte [esp + 0xdc]
mov byte [esp + 0x11c], al
mov byte [esp + 0x27c], 0x8b
mov byte [esp + 0x27d], 0x1f
mov eax, 2
mov byte [esp + eax + 0x27c], 0
add eax, 1
cmp eax, 6
jne 0x410eb2
xor eax, eax
mov dword [esp + 0x2c], ebx
cmp eax, 6
jae 0x410f3a
movzx edx, byte [esp + eax + 0x27c]
mov ebx, eax
add ebx, 0x6b113345
mov edi, ebx
shl edi, 1
mov ecx, eax
add ecx, 0x6b113344
sub ecx, edi
and ecx, 0x8f241ebb
and ebx, 0x70dbe144
or ecx, ebx
mov ebx, dword [esp + 0x2c]
xor ecx, edx
xor ecx, 0x8f241ebb
mov edi, ecx
shl edi, 1
mov edx, 2
sub edx, edi
and edx, 2
xor edx, 2
mov edi, ecx
and edi, 0xfe
add edi, 0xa6
and ecx, 1
or ecx, edi
xor ecx, 1
add ecx, edx
mov byte [esp + eax + 0x27c], cl
add eax, 1
jmp 0x410ec8
lea eax, [esp + 0x27c]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00401b00
cmp eax, 0
setne al
jmp 0x410f61
jmp 0x410f63
test al, 1
jne 0x410f6c
jmp 0x4110a1
mov al, byte [esp + 0xd8]
mov byte [esp + 0x120], al
mov byte [esp + 0x4c], 0xa2
mov byte [esp + 0x4d], 0xb5
mov byte [esp + 0x4e], 0xd6
mov eax, 3
mov byte [esp + eax + 0x4c], 0
add eax, 1
cmp eax, 4
jne 0x410f8e
jmp 0x410f9d
xor eax, eax
jmp 0x410fa1
cmp eax, 4
jae 0x410fbd
mov cl, byte [esp + eax + 0x4c]
mov dl, al
add dl, 0xce
xor dl, cl
add dl, 0xfa
mov byte [esp + eax + 0x4c], dl
add eax, 1
jmp 0x410fa1
lea eax, [esp + 0x4c]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401b00
cmp eax, 0
setne al
test al, 1
jne 0x410fe8
jmp 0x4110a1
mov al, byte [esp + 0xd4]
mov byte [esp + 0x124], al
mov byte [esp + 0x274], 0x8f
mov byte [esp + 0x275], 0x2b
mov eax, 2
mov byte [esp + eax + 0x274], 0
add eax, 1
cmp eax, 6
jne 0x41100b
xor eax, eax
cmp eax, 6
jae 0x411077
movzx edx, byte [esp + eax + 0x274]
mov ecx, eax
and ecx, 0x530d423b
xor ecx, 0x530d423b
mov edi, eax
and edi, 0xacf2bdc4
sub edi, ecx
mov ecx, edi
add ecx, 0x2568b402
mov ebx, 0xfd
sub ebx, edi
and ebx, edx
xor edx, 0xffffffff
and ecx, edx
or ecx, ebx
mov ebx, dword [esp + 0x2c]
mov edx, ecx
and edx, 1
or ecx, 1
add ecx, 0x1c
add edx, ecx
mov byte [esp + eax + 0x274], dl
add eax, 1
jmp 0x41101d
lea eax, [esp + 0x274]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
mov dword [esp + 8], 3
call fcn.00401b00
test eax, eax
sete al
test al, 1
jne 0x4110a1
jmp 0x4110a6
jmp 0x412e9c
mov al, byte [esp + 0xd0]
mov byte [esp + 0x128], al
mov byte [esp + 0x26c], 0x8b
mov byte [esp + 0x26d], 0x1f
mov eax, 2
mov byte [esp + eax + 0x26c], 0
add eax, 1
cmp eax, 7
jne 0x4110c9
xor eax, eax
cmp eax, 7
jae 0x411138
movzx ecx, byte [esp + eax + 0x26c]
mov edx, eax
add edx, 0xce0634c5
mov ebx, edx
shl ebx, 1
or ebx, 1
sub ebx, eax
add ebx, 0x3a
and ebx, ecx
or edx, ecx
mov ecx, ebx
xor ecx, edx
xor ebx, edx
or ecx, ebx
mov edi, ecx
shl edi, 1
and edi, 0x4c
mov edx, ecx
xor edx, 0x26
add edx, edi
mov ebx, ecx
shl ebx, 1
and ebx, 2
shl ecx, 1
and ecx, 2
add ecx, 0xff
sub edx, ecx
add edx, ebx
mov byte [esp + eax + 0x26c], dl
add eax, 1
jmp 0x4110db
lea eax, [esp + 0x26c]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401880
mov dword [esp + 0x2b0], eax
mov al, byte [esp + 0xcc]
mov byte [esp + 0x12c], al
mov byte [esp + 0x240], 0xb6
mov byte [esp + 0x241], 0xa7
mov byte [esp + 0x242], 0x1a
mov eax, 3
mov byte [esp + eax + 0x240], 0
add eax, 1
cmp eax, 7
jne 0x411181
xor eax, eax
cmp eax, 7
jae 0x4111e6
movzx ecx, byte [esp + eax + 0x240]
mov edi, 0xc4
sub edi, eax
mov edx, 0xc4
sub edx, eax
or edi, edx
mov edx, 0xc4
sub edx, eax
and edx, edi
mov ebx, 0xc4
sub ebx, eax
mov edi, 0xc4
sub edi, eax
or ebx, edi
mov edi, ecx
xor edi, 0xffffffff
or edx, edi
xor ebx, 0xffffffff
or ecx, ebx
and edx, ecx
add dl, 0xd9
mov byte [esp + eax + 0x240], dl
add eax, 1
jmp 0x411193
lea eax, [esp + 0x240]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.004018e0
fnstcw word [esp + 0x52]
movzx eax, word [esp + 0x52]
or eax, 0xc00
mov word [esp + 0x186], ax
fldcw word [esp + 0x186]
fistp dword [esp + 0x2bc]
fldcw word [esp + 0x52]
mov ecx, dword [esp + 0x2bc]
mov al, byte [esp + 0xc8]
mov byte [esp + 0x130], al
mov byte [esp + 0x264], 0xeb
mov byte [esp + 0x265], 0x4f
mov eax, 2
mov byte [esp + eax + 0x264], 0
add eax, 1
cmp eax, 5
jne 0x41124f
mov dword [esp + 0x74], ecx
xor eax, eax
cmp eax, 5
jae 0x4112c9
mov cl, byte [esp + eax + 0x264]
mov byte [esp + 0x46], cl
movzx edi, cl
mov ebx, eax
xor ebx, 0xc46c6513
mov edx, eax
shl edx, 1
and edx, 0x772735d8
sub edx, ebx
mov ebx, edx
and ebx, edi
mov edi, ebx
and edi, 2
xor edi, 2
mov ecx, esi
mov esi, ebx
and esi, 0xfd
imul esi, edi
mov edi, ebx
and edi, 2
or ebx, 2
imul ebx, edi
add ebx, esi
mov esi, ecx
sub edx, ebx
add dl, byte [esp + 0x46]
add dl, 0x5f
mov byte [esp + eax + 0x264], dl
add eax, 1
jmp 0x411265
lea eax, [esp + 0x264]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.004018e0
fnstcw word [esp + 0x50]
movzx eax, word [esp + 0x50]
or eax, 0xc00
mov word [esp + 0x184], ax
fldcw word [esp + 0x184]
fistp dword [esp + 0x2b8]
fldcw word [esp + 0x50]
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.0040ad60
lea eax, [esp + 0x414]
lea ecx, [esp + 0x40]
lea edx, [esp + 0x260]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.0040b4f0
test al, 1
jne 0x41136c
jmp 0x411363
mov ebx, dword [esp + 0x2c]
jmp 0x412e9c
cmp ebx, 0
sete al
mov byte [esp + 0x4b], al
test al, 1
jne 0x41137f
jmp 0x41236a
mov al, byte [esp + 0xc4]
mov byte [esp + 0x134], al
mov byte [esp + 0x258], 0x68
mov byte [esp + 0x259], 0xf9
mov eax, 2
mov byte [esp + eax + 0x258], 0
add eax, 1
cmp eax, 6
jne 0x4113a2
xor eax, eax
mov dword [esp + 0x3c], esi
cmp eax, 6
jae 0x411429
movzx ebx, byte [esp + eax + 0x258]
mov ecx, 0x76d6c755
sub ecx, eax
or ecx, ebx
mov edx, 0x55
sub edx, eax
mov esi, 0x55
sub esi, eax
or edx, esi
mov esi, 0x55
sub esi, eax
mov edi, 0x55
sub edi, eax
or esi, edi
and edx, esi
and edx, ebx
mov esi, ecx
shl esi, 1
xor esi, 0xffffffff
add ecx, esi
mov esi, edx
xor esi, 0xffffffff
shl esi, 1
add edx, esi
mov esi, 0xfe
sub esi, edx
or ecx, esi
mov esi, dword [esp + 0x3c]
add cl, 0xae
mov byte [esp + eax + 0x258], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x4113b8
lea eax, [esp + 0x258]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401880
cmp eax, 0
je 0x41157c
mov dword [esp + 0x288], eax
mov dword [esp], eax
call fcn.00412ec0
mov ebx, eax
mov dword [esp + 0x248], ebx
sub ebx, 0xda8f249a
add ebx, 1
add ebx, 0xda8f249a
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411488
mov ecx, eax
mov dword [esp], ecx
call fcn.00408350
mov edi, eax
xor eax, eax
mov dword [esp], edi
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x288]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040ad60
xor eax, eax
lea eax, [esp + 0xc0]
mov dword [esp], 0
mov dword [esp + 0x29c], edi
mov dword [esp + 4], edi
mov ecx, dword [esp + 0x248]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
call dword [0x44a8e0]
sub esp, 0x18
mov eax, dword [esp + 0xc0]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411513
mov ecx, eax
mov dword [esp], ecx
call fcn.00408350
mov ebx, dword [0x44a8e0]
mov ecx, dword [esp + 0xc0]
xor edx, edx
mov dword [esp], 0
mov edi, dword [esp + 0x29c]
mov dword [esp + 4], edi
mov edx, dword [esp + 0x248]
mov dword [esp + 8], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
lea eax, [esp + 0xc0]
mov dword [esp + 0x14], eax
call ebx
sub esp, 0x18
mov ebx, dword [esp + 0x2c]
mov dword [esp], edi
call fcn.00408360
mov edi, dword [esp + 0x28]
jmp 0x411575
jmp 0x411577
jmp 0x411a7c
call fcn.00408b90
mov ebx, eax
and ebx, 0xf
xor ebx, 0x10
add ebx, 0
xor edi, edi
lea eax, [esp + 0x3d4]
jmp 0x411597
cmp edi, ebx
jb 0x41177d
mov word [eax], 0
mov al, byte [esp + 0xa8]
mov byte [esp + 0x138], al
mov byte [esp + 0xac], 0x3d
mov byte [esp + 0xad], 0x11
mov byte [esp + 0xae], 0xee
mov byte [esp + 0xaf], 0x13
mov byte [esp + 0xb0], 0xd1
mov byte [esp + 0xb1], 0x1d
mov byte [esp + 0xb2], 0xeb
mov byte [esp + 0xb3], 0x1f
mov byte [esp + 0xb4], 0xe8
mov byte [esp + 0xb5], 0x19
mov byte [esp + 0xb6], 0x37
mov byte [esp + 0xb7], 0x1b
mov byte [esp + 0xb8], 0xe0
mov byte [esp + 0xb9], 5
mov byte [esp + 0xba], 6
mov byte [esp + 0xbb], 7
mov eax, 0x10
mov byte [esp + eax + 0xac], 0
add eax, 1
cmp eax, 0x12
jne 0x411637
xor eax, eax
cmp eax, 0x12
jae 0x411684
movzx edx, byte [esp + eax + 0xac]
mov ecx, eax
add ecx, 0xaab1aac4
mov edi, esi
mov esi, ecx
and esi, edx
shl esi, 1
add ecx, edx
sub ecx, esi
mov esi, edi
add cl, 0x2c
mov byte [esp + eax + 0xac], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x411649
lea eax, [esp + 0x374]
lea ecx, [esp + 0xac]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a080
lea ecx, [esp + 0x3d4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a080
mov ebx, eax
lea eax, [esp + 0x374]
sub ebx, 0xe2d07c84
sub ebx, eax
add ebx, 0xe2d07c84
sar ebx, 1
xor eax, eax
lea eax, [esp + 0x374]
lea ecx, [esp + 0xa4]
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 [0x44a8e0]
sub esp, 0x18
mov eax, dword [esp + 0xa4]
add eax, 4
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411726
mov ecx, eax
mov dword [esp], ecx
call fcn.00408350
mov edi, dword [0x44a8e0]
mov ecx, dword [esp + 0xa4]
xor edx, edx
lea edx, [esp + 0x374]
lea esi, [esp + 0xa4]
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
mov dword [esp + 0x14], esi
call edi
sub esp, 0x18
mov ecx, dword [esp + 0x74]
cmp ecx, 0
je 0x4117b0
jmp 0x41188c
mov dword [esp + 0x284], eax
call fcn.00408b90
mov ecx, 0x24
cdq
idiv ecx
movsx ecx, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov edx, dword [esp + 0x284]
mov eax, edx
add eax, 2
mov word [edx], cx
add edi, 1
jmp 0x411597
mov ebx, dword [esp + 0x2c]
mov al, byte [esp + 0xa0]
mov byte [esp + 0x13c], al
mov byte [esp + 0x230], 0xfe
mov byte [esp + 0x231], 0x8b
mov byte [esp + 0x232], 0x31
mov byte [esp + 0x233], 0x89
mov byte [esp + 0x234], 0
mov byte [esp + 0x235], 0x87
mov byte [esp + 0x236], 0x3d
mov byte [esp + 0x237], 0x85
mov byte [esp + 0x238], 0x84
mov byte [esp + 0x239], 0x83
mov eax, 0xa
mov esi, dword [esp + 0x3c]
mov byte [esp + eax + 0x230], 0
add eax, 1
cmp eax, 0xd
jne 0x41181b
xor eax, eax
mov edi, dword [esp + 0x28]
cmp eax, 0xd
jae 0x411874
movzx edx, byte [esp + eax + 0x230]
mov ecx, eax
add ecx, 0x87262223
xor ecx, edx
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, 0x50
add ecx, edx
mov byte [esp + eax + 0x230], cl
mov ecx, eax
add ecx, 1
mov edx, eax
xor edx, 0xffffffff
or edx, 1
add edx, ecx
or eax, 1
add eax, edx
jmp 0x411831
lea eax, [esp + 0x230]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.004132a0
jmp 0x411a76
cmp ecx, 1
sete al
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x3c]
test al, 1
jne 0x4118a3
jmp 0x411966
mov al, byte [esp + 0x9c]
mov byte [esp + 0x140], al
mov byte [esp + 0x220], 0x52
mov byte [esp + 0x221], 0x67
mov byte [esp + 0x222], 0x1a
mov byte [esp + 0x223], 0x61
mov byte [esp + 0x224], 0x14
mov byte [esp + 0x225], 0x63
mov byte [esp + 0x226], 0x16
mov byte [esp + 0x227], 0x7d
mov byte [esp + 0x228], 0x7c
mov byte [esp + 0x229], 0x7f
mov eax, 0xa
mov byte [esp + eax + 0x220], 0
add eax, 1
cmp eax, 0x10
jne 0x411906
xor eax, eax
cmp eax, 0x10
jae 0x411946
mov dl, byte [esp + eax + 0x220]
mov esi, eax
shl esi, 1
and esi, 0xd2
mov ecx, eax
xor ecx, 0x69
add ecx, esi
xor cl, dl
add cl, 0xf3
mov byte [esp + eax + 0x220], cl
add eax, 1
jmp 0x411918
lea eax, [esp + 0x220]
mov ecx, dword [esp + 0x28]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004132a0
mov esi, dword [esp + 0x3c]
jmp 0x411a76
cmp ecx, 2
sete al
test al, 1
jne 0x411975
jmp 0x411a76
mov al, byte [esp + 0x98]
mov byte [esp + 0x144], al
mov byte [esp + 0x210], 0x36
mov byte [esp + 0x211], 0xdb
mov byte [esp + 0x212], 0x6a
mov byte [esp + 0x213], 0xd9
mov byte [esp + 0x214], 0x6d
mov byte [esp + 0x215], 0xdf
mov byte [esp + 0x216], 0x29
mov byte [esp + 0x217], 0xdd
mov byte [esp + 0x218], 0xdc
mov byte [esp + 0x219], 0xd3
mov eax, 0xa
mov byte [esp + eax + 0x210], 0
add eax, 1
cmp eax, 0xe
jne 0x4119d8
xor edi, edi
cmp edi, 0xe
jae 0x411a57
movzx eax, byte [esp + edi + 0x210]
mov edx, edi
add edx, 0x44c9af
mov ecx, eax
shl ecx, 1
xor ecx, 0xffffffff
add ecx, eax
mov esi, eax
xor esi, 0xffffffff
or ecx, esi
mov ebx, edi
add ebx, 0xee44c9af
and ebx, 0xfe24741e
and edx, 0x1db8be1
and ecx, 0xce24501e
and eax, 0xe1
or eax, ecx
or ebx, edx
mov ecx, ebx
xor ecx, 0x1e
mov edx, eax
xor edx, 0xffffffff
and ecx, edx
xor ebx, 0xe1
and eax, ebx
or ecx, eax
add cl, 0x95
mov byte [esp + edi + 0x210], cl
add edi, 1
jmp 0x4119ea
lea eax, [esp + 0x210]
mov ecx, dword [esp + 0x28]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004132a0
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
jmp 0x411a7c
lea eax, [esp + 0x254]
xor ecx, ecx
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], 0x100002
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 5
mov dword [esp + 0x14], 0x60
mov dword [esp + 0x18], 0x80
call fcn.0043c990
mov dword [esp + 0x24c], eax
cmp eax, 0
setge al
test al, 1
jne 0x411acf
jmp 0x411c3e
mov dword [esp + 0x28], edi
mov edi, esi
mov eax, dword [esp + 0x260]
mov ecx, dword [esp + 0x40]
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.0043d170
mov dword [esp + 0x24c], eax
mov eax, dword [esp + 0x254]
mov dword [esp + 0x2ac], eax
mov al, byte [esp + 0x110]
mov byte [esp + 0x170], al
mov byte [esp + 0x114], 0x65
mov byte [esp + 0x115], 0x66
mov byte [esp + 0x116], 0x67
mov byte [esp + 0x117], 0x60
mov eax, 4
mov byte [esp + eax + 0x114], 0
add eax, 1
cmp eax, 6
jne 0x411b49
xor eax, eax
cmp eax, 6
jae 0x411baa
movzx edx, byte [esp + eax + 0x114]
mov ecx, 0xe6
sub ecx, eax
and ecx, edx
mov esi, 0xf72d9be6
sub esi, eax
or esi, edx
xor esi, 0xffffffff
or ecx, esi
mov edx, ecx
add edx, 0x83
mov esi, 0x7d
sub esi, ecx
or esi, 1
add esi, edx
or ecx, 1
add ecx, 0x82
add ecx, esi
mov byte [esp + eax + 0x114], cl
add eax, 1
jmp 0x411b5b
mov eax, dword [esp + 0x114]
mov dword [esp + 0x298], eax
xor ebx, ebx
mov esi, edi
mov edi, dword [esp + 0x28]
mov eax, 2
cmp ebx, dword [0x44a8e4]
jb 0x411bcf
jmp 0x411c35
mov ecx, dword [0x44a8e8]
cmp dword [ecx + ebx*8], 0xb62b8d10
sete dl
xor eax, eax
mov byte [esp + 0x48], dl
test dl, 1
jne 0x411bec
jmp 0x411c27
mov ecx, dword [ecx + ebx*8 + 4]
mov eax, 2
cmp ecx, dword [esp + 0x298]
je 0x411c27
mov eax, dword [0x44a8ec]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 1
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0xc], eax
call fcn.004390d0
mov eax, 1
test byte [esp + 0x48], 1
je 0x411c30
jmp 0x411c35
add ebx, 1
jmp 0x411bc0
cmp eax, 2
mov ebx, dword [esp + 0x2c]
jne 0x411c3e
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.00436020
mov dword [esp + 0x40], 0
cmp dword [esp + 0x24c], 0
setge al
test al, 1
mov ecx, dword [esp + 0x74]
jne 0x411c79
jmp 0x411c67
mov dword [esp + 0x30], 0
mov eax, 4
jmp 0x41235c
cmp ecx, 1
jne 0x411ff0
mov al, byte [esp + 0x94]
mov byte [esp + 0x148], al
mov byte [esp + 0x208], 0x72
mov byte [esp + 0x209], 0x7b
mov byte [esp + 0x20a], 0xe
mov eax, 3
mov byte [esp + eax + 0x208], 0
add eax, 1
cmp eax, 6
jne 0x411cad
mov dword [esp + 0x28], edi
xor eax, eax
cmp eax, 6
jae 0x411d15
movzx edx, byte [esp + eax + 0x208]
mov ecx, 0x7d
sub ecx, eax
and ecx, edx
xor edx, 0xffffffff
mov edi, esi
mov esi, eax
add esi, 0x83
mov ebx, 0x7d
sub ebx, eax
or ebx, edx
add ebx, esi
mov esi, edi
or ebx, ecx
add bl, 0x76
mov byte [esp + eax + 0x208], bl
mov ecx, eax
add ecx, 1
mov edx, eax
xor edx, 0xffffffff
or edx, 1
add edx, ecx
or eax, 1
add eax, edx
jmp 0x411cc3
lea eax, [esp + 0x208]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401880
mov dword [esp + 0x70], eax
mov al, byte [esp + 0x90]
mov byte [esp + 0x14c], al
mov byte [esp + 0x200], 0xa9
mov byte [esp + 0x201], 0x5f
mov byte [esp + 0x202], 0xce
mov eax, 3
mov edi, dword [esp + 0x28]
mov byte [esp + eax + 0x200], 0
add eax, 1
cmp eax, 7
jne 0x411d5f
xor eax, eax
cmp eax, 7
jae 0x411da6
movzx edx, byte [esp + eax + 0x200]
mov ecx, eax
add ecx, 0xad6c5fd2
xor ecx, edx
add ecx, 0x9ce220e5
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
mov byte [esp + eax + 0x200], cl
add eax, 1
jmp 0x411d71
lea eax, [esp + 0x200]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401880
mov dword [esp + 0x6c], eax
mov dword [esp], edi
call fcn.004132f0
mov ebx, eax
cmp dword [esp + 0x70], 0
setne al
mov dword [esp + 0x68], 0
mov byte [esp + 0x4a], al
test al, 1
jne 0x411de5
jmp 0x411e03
mov eax, dword [esp + 0x70]
mov dword [esp], eax
call fcn.00408570
mov ecx, eax
and ecx, 1
shl ecx, 1
xor eax, 1
add eax, ecx
mov dword [esp + 0x68], eax
jmp 0x411e03
cmp dword [esp + 0x6c], 0
setne cl
xor eax, eax
mov byte [esp + 0x37], cl
test cl, 1
jne 0x411e18
jmp 0x411e27
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
call fcn.00408570
add eax, 1
add ebx, 9
add ebx, dword [esp + 0x68]
mov dword [esp + 0x2b4], eax
xor eax, 0xffffffff
sub eax, 0xffffffff
sub ebx, eax
xor ecx, ecx
sub ecx, ebx
add ecx, 0xffffffff
xor eax, eax
sub eax, ecx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411e5e
mov ecx, eax
mov dword [esp], ecx
call fcn.00408350
mov dword [esp + 0x30], eax
mov al, byte [esp + 0x8c]
mov byte [esp + 0x150], al
mov byte [esp + 0x54], 0xc2
mov byte [esp + 0x55], 0x31
mov byte [esp + 0x56], 0xcf
mov byte [esp + 0x57], 0x33
mov byte [esp + 0x58], 0xca
mov byte [esp + 0x59], 0x3d
mov byte [esp + 0x5a], 0xd2
mov byte [esp + 0x5b], 0x3f
mov byte [esp + 0x5c], 0xcc
mov byte [esp + 0x5d], 0x39
mov byte [esp + 0x5e], 0xce
mov byte [esp + 0x5f], 0x3b
mov byte [esp + 0x60], 0xf7
mov byte [esp + 0x61], 0xc5
mov byte [esp + 0x62], 0xf4
mov byte [esp + 0x63], 0xc7
mov byte [esp + 0x64], 0xc0
mov byte [esp + 0x65], 0xc1
mov eax, 0x12
mov byte [esp + eax + 0x54], 0
add eax, 1
cmp eax, 0x14
jne 0x411ed7
xor eax, eax
cmp eax, 0x14
jae 0x411f24
movzx edx, byte [esp + eax + 0x54]
mov edi, esi
mov esi, eax
add esi, 0xf4
mov ecx, eax
add ecx, 0xf4
or ecx, esi
and ecx, edx
mov esi, eax
add esi, 0xf4
or esi, edx
xor ecx, esi
mov esi, edi
mov edi, dword [esp + 0x28]
add cl, 0x3c
mov byte [esp + eax + 0x54], cl
add eax, 1
jmp 0x411ee6
lea eax, [esp + 0x54]
mov ecx, dword [esp + 0x30]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040a080
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.0040a080
mov ebx, eax
add ebx, 2
mov word [eax], 0x22
mov dword [esp], edi
call fcn.00408360
jmp 0x411f6b
test byte [esp + 0x4a], 1
jne 0x411f78
mov al, byte [esp + 0x37]
jmp 0x411fae
mov edi, ebx
add edi, 2
mov word [ebx], 0x2c
xor eax, eax
mov dword [esp], edi
mov eax, dword [esp + 0x68]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040ad60
shl eax, 1
add edi, eax
mov ebx, edi
mov al, byte [esp + 0x37]
test al, 1
jne 0x411fb4
jmp 0x411fe3
mov eax, ebx
add eax, 2
mov word [ebx], 0x2c
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.0040ad60
xor edi, edi
xor ecx, ecx
mov ebx, dword [esp + 0x2c]
jmp 0x41235a
mov dword [esp + 0x30], 0
cmp ecx, 2
je 0x412002
jmp 0x41235a
mov dword [esp], edi
call fcn.004132f0
mov ecx, eax
and ecx, 0x1d
or eax, 0x1d
add ecx, eax
jmp 0x412016
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 0x412036
mov ecx, eax
jmp 0x412038
mov dword [esp], ecx
call fcn.00408350
mov dword [esp + 0x30], eax
jmp 0x412046
mov al, byte [esp + 0x80]
mov byte [esp + 0x154], al
mov byte [esp + 0x84], 0x22
mov byte [esp + 0x85], 0x5b
mov byte [esp + 0x86], 0x5a
mov byte [esp + 0x87], 0x59
mov eax, 4
mov byte [esp + eax + 0x84], 0
add eax, 1
cmp eax, 6
jne 0x412079
mov dword [esp + 0x28], edi
xor eax, eax
cmp eax, 6
jae 0x4120ef
movzx edx, byte [esp + eax + 0x84]
mov edi, eax
shl edi, 1
and edi, 0xb93cf9de
mov esi, eax
shl esi, 1
and esi, 0xb93cf9de
add esi, 0x23618311
mov ecx, eax
sub ecx, esi
add ecx, edi
mov esi, ecx
xor esi, 0xffffffff
and esi, edx
mov edi, ecx
xor edi, edx
mov ebx, ecx
sub ebx, edi
add ebx, esi
or ecx, edx
xor ebx, 0xffffffff
and ecx, ebx
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, 0x54
add ecx, edx
mov byte [esp + eax + 0x84], cl
add eax, 1
jmp 0x41208f
mov al, byte [esp + 0x7c]
mov byte [esp + 0x158], al
mov byte [esp + 0x188], 0x30
mov byte [esp + 0x189], 0x81
mov byte [esp + 0x18a], 0x2d
mov byte [esp + 0x18b], 0x83
mov byte [esp + 0x18c], 0x33
mov byte [esp + 0x18d], 0x85
mov byte [esp + 0x18e], 0x23
mov byte [esp + 0x18f], 0x87
mov byte [esp + 0x190], 0x3a
mov byte [esp + 0x191], 0x89
mov byte [esp + 0x192], 0x39
mov byte [esp + 0x193], 0x8b
mov byte [esp + 0x194], 0x24
mov byte [esp + 0x195], 0x8d
mov byte [esp + 0x196], 0x2b
mov byte [esp + 0x197], 0x8f
mov byte [esp + 0x198], 0x3c
mov byte [esp + 0x199], 0x91
mov byte [esp + 0x19a], 0x3e
mov byte [esp + 0x19b], 0x93
mov byte [esp + 0x19c], 0x74
mov byte [esp + 0x19d], 0x95
mov byte [esp + 0x19e], 0x7b
mov byte [esp + 0x19f], 0x97
mov byte [esp + 0x1a0], 0x3d
mov byte [esp + 0x1a1], 0x99
mov byte [esp + 0x1a2], 0x22
mov byte [esp + 0x1a3], 0x9b
mov byte [esp + 0x1a4], 0x39
mov byte [esp + 0x1a5], 0x9d
mov byte [esp + 0x1a6], 0x3d
mov byte [esp + 0x1a7], 0x9f
mov byte [esp + 0x1a8], 0x80
mov byte [esp + 0x1a9], 0x61
mov byte [esp + 0x1aa], 0xc0
mov byte [esp + 0x1ab], 0x63
mov byte [esp + 0x1ac], 0xdd
mov byte [esp + 0x1ad], 0x65
mov byte [esp + 0x1ae], 0xd6
mov byte [esp + 0x1af], 0x67
mov byte [esp + 0x1b0], 0xc9
mov byte [esp + 0x1b1], 0x69
mov byte [esp + 0x1b2], 0xd9
mov byte [esp + 0x1b3], 0x6b
mov byte [esp + 0x1b4], 0xdf
mov byte [esp + 0x1b5], 0x6d
mov byte [esp + 0x1b6], 0x8e
mov byte [esp + 0x1b7], 0x6f
mov byte [esp + 0x1b8], 0x9d
mov byte [esp + 0x1b9], 0x71
mov byte [esp + 0x1ba], 0xd4
mov byte [esp + 0x1bb], 0x73
mov byte [esp + 0x1bc], 0x94
mov byte [esp + 0x1bd], 0x75
mov byte [esp + 0x1be], 0x94
mov byte [esp + 0x1bf], 0x77
mov byte [esp + 0x1c0], pe_nt_image_headers32
mov byte [esp + 0x1c1], 0x79
mov eax, 0x3a
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov byte [esp + eax + 0x188], 0
add eax, 1
cmp eax, 0x3f
jne 0x4122db
xor eax, eax
cmp eax, 0x3f
jae 0x41231f
movzx edx, byte [esp + eax + 0x188]
mov ecx, eax
add ecx, 0x9bd21ce0
mov esi, ecx
and esi, edx
shl esi, 1
add ecx, edx
sub ecx, esi
mov esi, dword [esp + 0x3c]
add cl, 0xa0
mov byte [esp + eax + 0x188], cl
add eax, 1
jmp 0x4122ed
lea eax, [esp + 0x188]
mov ecx, dword [esp + 0x30]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040a080
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.0040a080
lea ecx, [esp + 0x84]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a080
mov ecx, 2
xor eax, eax
cmp eax, 0
je 0x412657
jmp 0x412e9c
call fcn.00413310
xor ebx, 1
mov ecx, dword [esp + 0x74]
mov eax, ecx
xor eax, 2
or ebx, eax
sete al
mov dword [esp + 0x30], 0
test al, 1
mov edi, 0
mov ebx, dword [esp + 0x2c]
jne 0x41239a
jmp 0x412657
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.00412ec0
mov ebx, eax
add ebx, 1
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4123c3
mov ecx, eax
mov dword [esp], ecx
call fcn.00408350
mov edi, eax
mov eax, dword [esp + 0x40]
xor ecx, ecx
mov dword [esp], edi
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040ad60
mov eax, dword [esp + 0x260]
xor ecx, ecx
sub ecx, eax
add ecx, 0xffffffe8
xor eax, eax
sub eax, ecx
sub eax, 0xebe1c434
add eax, 1
add eax, 0xebe1c434
mov ecx, 2
mul ecx
seto dl
mov ebx, dword [esp + 0x2c]
jmp 0x41241d
mov ecx, 0xffffffff
test dl, 1
jne 0x412429
mov ecx, eax
jmp 0x41242b
mov dword [esp], ecx
call fcn.00408350
mov dword [esp + 0x30], eax
mov al, byte [esp + 0x78]
mov byte [esp + 0x15c], al
mov byte [esp + 0x1c8], 0
mov byte [esp + 0x1c9], 0x91
mov byte [esp + 0x1ca], 5
mov byte [esp + 0x1cb], 0x93
mov byte [esp + 0x1cc], 3
mov byte [esp + 0x1cd], 0x9d
mov byte [esp + 0x1ce], 0x33
mov byte [esp + 0x1cf], 0x9f
mov byte [esp + 0x1d0], 0xa
mov byte [esp + 0x1d1], 0x99
mov byte [esp + 0x1d2], 9
mov byte [esp + 0x1d3], 0x9b
mov byte [esp + 0x1d4], 0x2c
mov byte [esp + 0x1d5], 0x85
mov byte [esp + 0x1d6], 0x2b
mov byte [esp + 0x1d7], 0x87
mov byte [esp + 0x1d8], 0x14
mov byte [esp + 0x1d9], 0x81
mov byte [esp + 0x1da], 0x16
mov byte [esp + 0x1db], 0x83
mov byte [esp + 0x1dc], 0xec
mov byte [esp + 0x1dd], 0x8d
mov byte [esp + 0x1de], 0xdb
mov byte [esp + 0x1df], 0x8f
mov byte [esp + 0x1e0], 0x25
mov byte [esp + 0x1e1], 0x89
mov byte [esp + 0x1e2], 0x12
mov byte [esp + 0x1e3], 0x8b
mov byte [esp + 0x1e4], 0x59
mov byte [esp + 0x1e5], 0xf5
mov byte [esp + 0x1e6], 0x55
mov byte [esp + 0x1e7], 0xf7
mov byte [esp + 0x1e8], 0x90
mov byte [esp + 0x1e9], 0xf1
mov byte [esp + 0x1ea], 0x50
mov byte [esp + 0x1eb], 0xf3
mov byte [esp + 0x1ec], 0x65
mov byte [esp + 0x1ed], 0xfd
mov byte [esp + 0x1ee], 0x6e
mov byte [esp + 0x1ef], 0xff
mov byte [esp + 0x1f0], 0x59
mov byte [esp + 0x1f1], 0xf9
mov byte [esp + 0x1f2], 0x69
mov byte [esp + 0x1f3], 0xfb
mov byte [esp + 0x1f4], 0x77
mov byte [esp + 0x1f5], 0xe5
mov byte [esp + 0x1f6], 0x86
mov byte [esp + 0x1f7], 0xe7
mov byte [esp + 0x1f8], 0xe0
mov byte [esp + 0x1f9], 0xe1
mov eax, 0x32
mov byte [esp + eax + 0x1c8], 0
add eax, 1
cmp eax, 0x38
jne 0x4125d7
xor eax, eax
cmp eax, 0x38
jae 0x412623
mov cl, byte [esp + eax + 0x1c8]
mov dl, al
add dl, 0x24
xor dl, cl
add dl, 0x4c
mov byte [esp + eax + 0x1c8], dl
mov ecx, eax
xor ecx, 0xfffffffe
mov edx, eax
or edx, 1
and edx, ecx
shl edx, 1
mov ecx, eax
and ecx, edx
shl ecx, 1
xor eax, edx
xor eax, 1
add eax, ecx
jmp 0x4125e9
lea eax, [esp + 0x1c8]
mov ecx, dword [esp + 0x30]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040a080
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.0040a080
mov dword [esp], edi
call fcn.00408360
xor edi, edi
mov ecx, 2
jmp 0x412657
test ecx, ecx
je 0x412678
jmp 0x41265d
mov eax, ecx
sub eax, 1
je 0x412861
jmp 0x41266a
sub ecx, 2
je 0x412b31
jmp 0x412e5e
test byte [esp + 0x4b], 1
jne 0x412684
jmp 0x412861
mov dword [esp + 0x28], edi
lea edi, [esp + 0x330]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x28]
mov dword [esp + 0x330], 0x44
mov eax, dword [0x44a8d8]
mov dword [esp], eax
mov dword [esp + 4], 0x38c42730
call fcn.0043c0e0
test eax, eax
setne cl
xor ecx, ecx
lea edx, [esp + 0x2dc]
mov dword [esp], edi
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], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
lea ecx, [esp + 0x330]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
call eax
sub esp, 0x28
cmp eax, 0
je 0x41285c
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x2a0], eax
mov al, byte [esp + 0x104]
mov byte [esp + 0x174], al
mov byte [esp + 0x108], 0x65
mov byte [esp + 0x109], 0x66
mov byte [esp + 0x10a], 0x67
mov byte [esp + 0x10b], 0x60
mov eax, 4
mov byte [esp + eax + 0x108], 0
add eax, 1
cmp eax, 6
jne 0x412763
xor eax, eax
cmp eax, 6
jae 0x4127c8
movzx edx, byte [esp + eax + 0x108]
mov ecx, 0xe6
sub ecx, eax
and ecx, edx
mov edi, esi
mov esi, 0xf72d9be6
sub esi, eax
or esi, edx
xor esi, 0xffffffff
or ecx, esi
mov edx, ecx
add edx, 0x83
mov esi, 0x7d
sub esi, ecx
or esi, 1
add esi, edx
or ecx, 1
add ecx, 0x82
add ecx, esi
mov esi, edi
mov byte [esp + eax + 0x108], cl
add eax, 1
jmp 0x412775
mov edx, dword [esp + 0x108]
xor edi, edi
mov eax, 2
cmp edi, dword [0x44a8e4]
jb 0x4127e0
jmp 0x412851
mov ecx, dword [0x44a8e8]
cmp dword [ecx + edi*8], 0xb62b8d10
sete bl
xor eax, eax
test bl, 1
jne 0x4127f9
jmp 0x41283d
mov ecx, dword [ecx + edi*8 + 4]
mov eax, 2
cmp ecx, edx
je 0x41283d
mov eax, dword [0x44a8ec]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 1
mov eax, dword [esp + 0x2a0]
mov dword [esp + 0xc], eax
mov dword [esp + 0x28c], edx
call fcn.004390d0
mov edx, dword [esp + 0x28c]
mov eax, 1
test bl, 1
je 0x412848
mov ebx, dword [esp + 0x2c]
jmp 0x412851
add edi, 1
mov ebx, dword [esp + 0x2c]
jmp 0x4127d1
cmp eax, 2
mov edi, dword [esp + 0x28]
jne 0x41285a
jmp 0x41285c
jmp 0x412e5e
call fcn.00413310
call fcn.00413310
mov eax, dword [0x44a8d8]
mov dword [esp], eax
mov dword [esp + 4], 0xe117db1e
call fcn.0043c0e0
test eax, eax
setne cl
mov ecx, dword [esp + 0x40]
xor edx, edx
lea edx, [0x41da10]
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
call eax
sub esp, 0x18
mov dword [esp + 0x250], eax
cmp eax, 0
je 0x412b2c
mov dword [esp + 0x2c4], 0xffffffff
mov dword [esp + 0x2c0], 0xdc3cba00
mov cl, byte [esp + 0x160]
mov byte [esp + 0x16c], cl
mov byte [esp + 0x164], 0x65
mov byte [esp + 0x165], 0x66
mov byte [esp + 0x166], 0x67
mov byte [esp + 0x167], 0x60
mov ecx, 4
mov byte [esp + ecx + 0x164], 0
add ecx, 1
cmp ecx, 6
jne 0x412916
mov dword [esp + 0x28], edi
xor ecx, ecx
cmp ecx, 6
jae 0x41297f
mov eax, esi
movzx esi, byte [esp + ecx + 0x164]
mov edx, 0xe6
sub edx, ecx
and edx, esi
mov edi, 0xf72d9be6
sub edi, ecx
or edi, esi
xor edi, 0xffffffff
or edx, edi
mov esi, edx
add esi, 0x83
mov edi, 0x7d
sub edi, edx
or edi, 1
add edi, esi
mov esi, eax
or edx, 1
add edx, 0x82
add edx, edi
mov byte [esp + ecx + 0x164], dl
add ecx, 1
jmp 0x41292c
mov edi, dword [esp + 0x164]
xor ebx, ebx
cmp ebx, dword [0x44a8e4]
jb 0x412992
jmp 0x412a0d
mov ecx, dword [0x44a8e8]
cmp dword [ecx + ebx*8], 0x4e66b5a3
sete al
test al, 1
jne 0x4129a8
jmp 0x4129f6
mov ecx, dword [ecx + ebx*8 + 4]
cmp ecx, edi
je 0x4129f6
mov edx, dword [0x44a8ec]
mov byte [esp + 0x49], al
mov eax, esi
xor esi, esi
lea esi, [esp + 0x2c0]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 3
mov ecx, dword [esp + 0x250]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], esi
mov esi, eax
call fcn.004390d0
mov al, byte [esp + 0x49]
test al, 1
je 0x4129fc
jmp 0x412a0d
mov ecx, ebx
shl ecx, 1
and ecx, 2
xor ebx, 1
add ebx, ecx
jmp 0x412988
mov cl, byte [esp + 0xf8]
mov byte [esp + 0x178], cl
mov byte [esp + 0xfc], 0x65
mov byte [esp + 0xfd], 0x66
mov byte [esp + 0xfe], 0x67
mov byte [esp + 0xff], 0x60
mov ecx, 4
mov byte [esp + ecx + 0xfc], 0
add ecx, 1
cmp ecx, 6
jne 0x412a40
mov eax, esi
xor ecx, ecx
cmp ecx, 6
jae 0x412aa3
movzx esi, byte [esp + ecx + 0xfc]
mov edx, 0xe6
sub edx, ecx
and edx, esi
mov edi, 0xf72d9be6
sub edi, ecx
or edi, esi
xor edi, 0xffffffff
or edx, edi
mov esi, edx
add esi, 0x83
mov edi, 0x7d
sub edi, edx
or edi, 1
add edi, esi
or edx, 1
add edx, 0x82
add edx, edi
mov byte [esp + ecx + 0xfc], dl
add ecx, 1
jmp 0x412a54
mov edi, dword [esp + 0xfc]
xor ebx, ebx
mov esi, eax
mov ecx, 2
cmp ebx, dword [0x44a8e4]
jb 0x412abd
jmp 0x412b1f
mov edx, dword [0x44a8e8]
cmp dword [edx + ebx*8], 0xb62b8d10
sete al
xor ecx, ecx
test al, 1
jne 0x412ad5
jmp 0x412b14
mov edx, dword [edx + ebx*8 + 4]
mov ecx, 2
cmp edx, edi
je 0x412b14
mov ecx, dword [0x44a8ec]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], 1
mov byte [esp + 0x47], al
mov eax, dword [esp + 0x250]
mov dword [esp + 0xc], eax
call fcn.004390d0
mov al, byte [esp + 0x47]
mov ecx, 1
test al, 1
je 0x412b1a
jmp 0x412b1f
add ebx, 1
jmp 0x412aae
cmp ecx, 2
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
jne 0x412b2c
jmp 0x412e5e
lea eax, [esp + 0x2ec]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x44
call fcn.004084e0
mov dword [esp + 0x2ec], 0x44
call fcn.00413310
mov eax, dword [0x44a8d8]
mov dword [esp], eax
mov dword [esp + 4], 0x38c42730
call fcn.0043c0e0
test eax, eax
setne cl
jmp 0x412b7e
xor ecx, ecx
lea edx, [esp + 0x2cc]
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 + 0x2ec]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
call eax
sub esp, 0x28
cmp eax, 0
setne al
test al, 1
jne 0x412be9
jmp 0x412e5c
lea eax, [esp + 0x2cc]
add eax, 4
mov eax, dword [eax]
mov dword [esp + 0x2a8], eax
mov al, byte [esp + 0xec]
mov byte [esp + 0x17c], al
mov byte [esp + 0xf0], 0x65
mov byte [esp + 0xf1], 0x66
mov byte [esp + 0xf2], 0x67
mov byte [esp + 0xf3], 0x60
mov eax, 4
mov byte [esp + eax + 0xf0], 0
add eax, 1
cmp eax, 6
jne 0x412c2f
mov dword [esp + 0x28], edi
xor eax, eax
cmp eax, 6
jae 0x412c98
movzx edx, byte [esp + eax + 0xf0]
mov ecx, 0xe6
sub ecx, eax
and ecx, edx
mov edi, esi
mov esi, 0xf72d9be6
sub esi, eax
or esi, edx
xor esi, 0xffffffff
or ecx, esi
mov edx, ecx
add edx, 0x83
mov esi, 0x7d
sub esi, ecx
or esi, 1
add esi, edx
or ecx, 1
add ecx, 0x82
add ecx, esi
mov esi, edi
mov byte [esp + eax + 0xf0], cl
add eax, 1
jmp 0x412c45
mov edx, dword [esp + 0xf0]
xor edi, edi
mov eax, 2
cmp edi, dword [0x44a8e4]
jb 0x412cb0
jmp 0x412d19
mov ecx, dword [0x44a8e8]
cmp dword [ecx + edi*8], 0xb62b8d10
sete bl
xor eax, eax
test bl, 1
jne 0x412cc9
jmp 0x412d0d
mov ecx, dword [ecx + edi*8 + 4]
mov eax, 2
cmp ecx, edx
je 0x412d0d
mov eax, dword [0x44a8ec]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 1
mov eax, dword [esp + 0x2a8]
mov dword [esp + 0xc], eax
mov dword [esp + 0x294], edx
call fcn.004390d0
mov edx, dword [esp + 0x294]
mov eax, 1
test bl, 1
je 0x412d14
jmp 0x412d19
add edi, 1
jmp 0x412ca1
cmp eax, 2
jne 0x412d1e
jmp 0x412d20
mov eax, dword [esp + 0x2cc]
mov dword [esp + 0x2a4], eax
mov al, byte [esp + 0xe0]
mov byte [esp + 0x180], al
mov byte [esp + 0xe4], 0x65
mov byte [esp + 0xe5], 0x66
mov byte [esp + 0xe6], 0x67
mov byte [esp + 0xe7], 0x60
mov eax, 4
mov byte [esp + eax + 0xe4], 0
add eax, 1
cmp eax, 6
jne 0x412d61
mov ebx, esi
xor eax, eax
cmp eax, 6
jae 0x412dc4
movzx edx, byte [esp + eax + 0xe4]
mov ecx, 0xe6
sub ecx, eax
and ecx, edx
mov esi, 0xf72d9be6
sub esi, eax
or esi, edx
xor esi, 0xffffffff
or ecx, esi
mov edx, ecx
add edx, 0x83
mov esi, 0x7d
sub esi, ecx
or esi, 1
add esi, edx
or ecx, 1
add ecx, 0x82
add ecx, esi
mov byte [esp + eax + 0xe4], cl
add eax, 1
jmp 0x412d75
mov edx, dword [esp + 0xe4]
xor edi, edi
mov esi, ebx
mov ebx, dword [esp + 0x2c]
mov eax, 2
cmp edi, dword [0x44a8e4]
jb 0x412de2
jmp 0x412e53
mov ecx, dword [0x44a8e8]
cmp dword [ecx + edi*8], 0xb62b8d10
sete bl
xor eax, eax
test bl, 1
jne 0x412dfb
jmp 0x412e3f
mov ecx, dword [ecx + edi*8 + 4]
mov eax, 2
cmp ecx, edx
je 0x412e3f
mov eax, dword [0x44a8ec]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 1
mov eax, dword [esp + 0x2a4]
mov dword [esp + 0xc], eax
mov dword [esp + 0x290], edx
call fcn.004390d0
mov edx, dword [esp + 0x290]
mov eax, 1
test bl, 1
je 0x412e4a
mov ebx, dword [esp + 0x2c]
jmp 0x412e53
add edi, 1
mov ebx, dword [esp + 0x2c]
jmp 0x412dd3
cmp eax, 2
mov edi, dword [esp + 0x28]
jne 0x412e5c
jmp 0x412e5e
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.00436020
cmp edi, 0
sete al
test al, 1
jne 0x412e80
jmp 0x412e76
mov dword [esp], edi
call fcn.00408360
jmp 0x412e80
cmp dword [esp + 0x30], 0
sete al
test al, 1
jne 0x412e9a
jmp 0x412e8e
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00408360
jmp 0x412e9c
add ebx, 1
jmp 0x410e6c
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret