Function at 0x413370
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, 0x808
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00402750
mov esi, eax
cmp esi, 0
jne 0x413398
xor eax, eax
jmp 0x415468
xor edi, edi
jmp 0x41339c
mov dword [esp], esi
call fcn.00402b20
cmp edi, eax
jb 0x4133af
mov al, 1
jmp 0x415468
mov dword [esp], esi
mov dword [esp + 4], edi
call fcn.00402b30
mov ebx, eax
mov al, byte [esp + 0x1b8]
mov byte [esp + 0x1d0], al
mov byte [esp + 0x4a], 0xba
mov byte [esp + 0x4b], 0x20
xor eax, eax
cmp eax, 2
jae 0x4133f9
mov cl, byte [esp + eax + 0x4a]
mov dl, al
add dl, 0x97
xor dl, cl
add dl, 0x48
mov byte [esp + eax + 0x4a], dl
mov ecx, eax
shl ecx, 1
or eax, ecx
xor eax, 1
jmp 0x4133d7
lea eax, [esp + 0x4a]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00402a20
cmp eax, 0
setne al
test al, 1
jne 0x413420
jmp 0x413543
mov al, byte [esp + 0x1b4]
mov byte [esp + 0x1d4], al
mov byte [esp + 0x5f], 0x1e
mov byte [esp + 0x60], 0xd
mov byte [esp + 0x61], 0xfa
xor eax, eax
mov dword [esp + 0x4c], ebx
cmp eax, 3
jae 0x413493
movzx edx, byte [esp + eax + 0x5f]
mov ebx, eax
add ebx, 0x3d689d38
mov ecx, eax
add ecx, 0x3d689d38
or ecx, 0xa862b502
sub ecx, eax
add ecx, 0x429762c8
and ebx, 0x579d4afd
xor edx, 0xa862b502
or ecx, ebx
mov ebx, ecx
and ebx, edx
shl ebx, 1
sub ecx, ebx
mov ebx, dword [esp + 0x4c]
add ecx, edx
add cl, 0x40
mov byte [esp + eax + 0x5f], cl
add eax, 1
jmp 0x413443
lea eax, [esp + 0x5f]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00402a20
cmp eax, 0
je 0x413543
mov dword [esp + 0x34], edi
mov al, byte [esp + 0x1b0]
mov byte [esp + 0x1d8], al
mov byte [esp + 0x48], 0x49
mov byte [esp + 0x49], 0xed
xor edi, edi
cmp edi, 2
jae 0x41351c
movzx edx, byte [esp + edi + 0x48]
mov ebx, edi
shl ebx, 1
and ebx, 0x1cebcd18
mov eax, edi
shl eax, 1
and eax, 0x1cebcd18
mov ecx, edi
add ecx, 0xe75e68c
sub ecx, eax
add ecx, ebx
mov ebx, dword [esp + 0x4c]
xor ecx, edx
add ecx, 0x8c50cb9f
mov eax, ecx
shl eax, 1
and eax, 2
xor ecx, 1
add ecx, eax
mov byte [esp + edi + 0x48], cl
add edi, 1
jmp 0x4134d2
lea eax, [esp + 0x48]
mov dword [esp + 4], eax
mov dword [esp], ebx
mov dword [esp + 8], 3
call fcn.00402a20
test eax, eax
sete al
test al, 1
mov edi, dword [esp + 0x34]
jne 0x413543
jmp 0x413548
jmp 0x415454
mov al, byte [esp + 0x1ac]
mov byte [esp + 0x1dc], al
mov byte [esp + 0x46], 0xea
mov byte [esp + 0x47], 0x70
xor eax, eax
cmp eax, 2
jae 0x41359a
movzx edx, byte [esp + eax + 0x46]
mov ecx, eax
add ecx, 0x47
mov ebx, 0xb8
sub ebx, eax
mov edi, 0xb8
sub edi, eax
and ebx, edi
or ecx, edx
xor edx, 0xffffffff
or ebx, edx
and ecx, ebx
mov ebx, dword [esp + 0x4c]
add cl, 0xc8
mov byte [esp + eax + 0x46], cl
add eax, 1
jmp 0x413562
lea eax, [esp + 0x46]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00402460
mov dword [esp + 0x298], eax
mov al, byte [esp + 0x1a8]
mov byte [esp + 0x1e0], al
mov byte [esp + 0x5c], 0x45
mov byte [esp + 0x5d], 0x30
mov byte [esp + 0x5e], 0xa5
xor eax, eax
cmp eax, 3
jae 0x41360c
movzx edx, byte [esp + eax + 0x5c]
mov ecx, eax
add ecx, 0xc2b0d17b
xor ecx, edx
mov edx, ecx
add edx, 0xea797427
mov ebx, edx
shl ebx, 1
and ebx, 2
shl edx, 1
and edx, 2
add ecx, 0x28
sub ecx, edx
add ecx, ebx
mov ebx, dword [esp + 0x4c]
mov byte [esp + eax + 0x5c], cl
add eax, 1
jmp 0x4135d0
mov dword [esp + 0x2c], esi
lea eax, [esp + 0x5c]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00402560
fnstcw word [esp + 0x90]
movzx eax, word [esp + 0x90]
or eax, 0xc00
mov word [esp + 0x246], ax
fldcw word [esp + 0x246]
fistp dword [esp + 0x2ac]
fldcw word [esp + 0x90]
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0xbc], eax
mov al, byte [esp + 0x1a4]
mov byte [esp + 0x1e4], al
mov byte [esp + 0x44], 0x27
mov byte [esp + 0x45], 0x43
xor eax, eax
cmp eax, 2
jae 0x4136dd
movzx ecx, byte [esp + eax + 0x44]
mov edx, eax
add edx, 0x6f6ed4d2
mov edi, edx
xor edi, ecx
mov esi, 0x90912b2d
sub esi, eax
or esi, edi
mov ebx, edx
and ebx, ecx
xor esi, 0xffffffff
or ebx, esi
mov esi, ebx
and esi, 2
xor esi, 2
mov edi, ebx
and edi, 0xfffffffd
imul edi, esi
mov esi, ebx
and esi, 2
or ebx, 2
imul ebx, esi
add ebx, edi
sub ebx, edx
mov edx, ebx
xor edx, ecx
xor ebx, 0xffffffff
and ecx, ebx
mov ebx, dword [esp + 0x4c]
shl ecx, 1
sub ecx, edx
add cl, 0x70
mov byte [esp + eax + 0x44], cl
add eax, 1
jmp 0x413679
lea eax, [esp + 0x44]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00402560
fnstcw word [esp + 0x8e]
movzx eax, word [esp + 0x8e]
or eax, 0xc00
mov word [esp + 0x244], ax
fldcw word [esp + 0x244]
fistp dword [esp + 0x2a8]
fldcw word [esp + 0x8e]
mov ebx, 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.0040b710
lea eax, [esp + 0x404]
lea ecx, [esp + 0x38]
lea edx, [esp + 0x250]
xor esi, esi
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.0040be40
test al, 1
mov edi, dword [esp + 0x34]
jne 0x41378e
mov esi, dword [esp + 0x2c]
jmp 0x415452
cmp ebx, 0
sete al
mov esi, dword [esp + 0x2c]
test al, 1
mov byte [esp + 0x55], al
jne 0x4137a5
jmp 0x41499c
mov al, byte [esp + 0x1a0]
mov byte [esp + 0x1e8], al
mov byte [esp + 0x42], 0xa6
mov byte [esp + 0x43], 0x37
xor eax, eax
mov ebx, dword [esp + 0x4c]
cmp eax, 2
jae 0x4137eb
movzx edx, byte [esp + eax + 0x42]
mov ecx, eax
add ecx, 0x84c9e206
mov esi, ecx
and esi, edx
shl esi, 1
add ecx, edx
sub ecx, esi
add cl, 0xd0
mov byte [esp + eax + 0x42], cl
add eax, 1
jmp 0x4137c3
lea eax, [esp + 0x42]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00402460
cmp eax, 0
setne cl
test cl, 1
jne 0x41380b
jmp 0x413a13
mov dword [esp + 0x258], eax
mov dword [esp], eax
call fcn.00415480
mov ebx, eax
mov dword [esp + 0x248], ebx
add ebx, 1
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x41383e
mov ecx, eax
mov dword [esp], ecx
call fcn.00408b20
mov esi, eax
xor eax, eax
mov dword [esp], esi
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x258]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040b710
xor eax, eax
lea eax, [esp + 0x19c]
mov dword [esp], 0
mov dword [esp + 0xb8], esi
mov dword [esp + 4], esi
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 [0x44964c]
sub esp, 0x18
mov dword [esp + 0x260], eax
mov al, byte [esp + 0x198]
mov byte [esp + 0x1ec], al
mov byte [esp + 0x72], 0xc8
mov byte [esp + 0x73], 0xec
mov byte [esp + 0x74], 0xed
mov byte [esp + 0x75], 0x2e
xor ebx, ebx
cmp ebx, 4
jae 0x413912
movzx eax, byte [esp + ebx + 0x72]
mov edx, ebx
add edx, 0xd13ba573
mov esi, edx
shl esi, 1
mov ecx, ebx
add ecx, 0x72
sub ecx, esi
mov esi, 0x8c
sub esi, ebx
and ecx, esi
or edx, eax
xor eax, 0xffffffff
or ecx, eax
and edx, ecx
add dl, 0x68
mov byte [esp + ebx + 0x72], dl
add ebx, 1
jmp 0x4138d7
mov eax, dword [esp + 0x72]
cmp dword [esp + 0x260], eax
mov esi, dword [esp + 0x2c]
jne 0x41394c
jmp 0x413925
mov eax, dword [esp + 0xb8]
mov dword [esp], eax
call fcn.00408b30
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.0043a680
xor ebx, ebx
mov eax, 4
jmp 0x413a05
mov eax, dword [esp + 0x19c]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x413969
mov ecx, eax
mov dword [esp], ecx
call fcn.00408b20
mov ebx, eax
mov eax, dword [0x44964c]
mov ecx, dword [esp + 0x19c]
xor edx, edx
mov dword [esp], 0
mov edx, dword [esp + 0xb8]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x248]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x19c]
mov dword [esp + 0x14], ecx
call eax
sub esp, 0x18
cmp eax, 0
setge al
test al, 1
jne 0x4139f0
jmp 0x4139c2
jmp 0x4139c4
mov dword [esp], ebx
call fcn.00408b30
jmp 0x4139ce
mov eax, dword [esp + 0xb8]
mov dword [esp], eax
call fcn.00408b30
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.0043a680
mov eax, 4
jmp 0x413a05
jmp 0x4139f2
mov eax, dword [esp + 0xb8]
mov dword [esp], eax
call fcn.00408b30
xor eax, eax
jmp 0x413a05
cmp eax, 0
je 0x4140ca
jmp 0x4140ce
call fcn.00409390
and eax, 0xf
add eax, 0x10
xor ebx, ebx
lea ecx, [esp + 0x3c4]
cmp ebx, eax
jb 0x413caf
mov word [ecx], 0
mov al, byte [esp + 0x190]
mov byte [esp + 0x1f4], al
mov byte [esp + 0xc2], 0xba
mov byte [esp + 0xc3], 0xd0
mov byte [esp + 0xc4], 0x65
mov byte [esp + 0xc5], 0xd2
mov byte [esp + 0xc6], 0x96
mov byte [esp + 0xc7], 0xd4
mov byte [esp + 0xc8], 0x68
mov byte [esp + 0xc9], 0xd6
mov byte [esp + 0xca], 0x67
mov byte [esp + 0xcb], 0xc8
mov byte [esp + 0xcc], 0xac
mov byte [esp + 0xcd], 0xca
mov byte [esp + 0xce], 0x67
mov byte [esp + 0xcf], 0xcc
mov byte [esp + 0xd0], 0xcd
mov byte [esp + 0xd1], 0xce
xor eax, eax
cmp eax, 0x10
jae 0x413b26
movzx edx, byte [esp + eax + 0xc2]
mov esi, eax
shl esi, 1
and esi, 0xea3cbbce
mov ecx, eax
xor ecx, 0x751e5de7
add ecx, esi
xor ecx, edx
mov edx, ecx
and edx, 0xc5
mov esi, ecx
and esi, 2
xor esi, 2
mov edi, ecx
and edi, 0xc5
imul edi, esi
mov esi, ecx
and esi, 2
or edx, 2
imul edx, esi
add edx, edi
xor ecx, 0xc7
add ecx, edx
add cl, 1
mov byte [esp + eax + 0xc2], cl
add eax, 1
jmp 0x413ac4
lea eax, [esp + 0x364]
lea ecx, [esp + 0xc2]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a8d0
lea ecx, [esp + 0x3c4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a8d0
lea ecx, [esp + 0x364]
sub eax, ecx
sar eax, 1
xor ecx, ecx
lea edx, [esp + 0x364]
lea ecx, [esp + 0x18c]
mov dword [esp], 0
mov dword [esp + 4], edx
mov dword [esp + 0x2a0], eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ecx
call dword [0x44964c]
sub esp, 0x18
mov dword [esp + 0x280], eax
mov al, byte [esp + 0x188]
mov byte [esp + 0x1f8], al
mov byte [esp + 0x6a], 0xe3
mov byte [esp + 0x6b], 0xc1
mov byte [esp + 0x6c], 0xc2
mov byte [esp + 0x6d], 3
xor eax, eax
mov edi, dword [esp + 0x34]
cmp eax, 4
jae 0x413c95
movzx ecx, byte [esp + eax + 0x6a]
xor ebx, ebx
sub ebx, eax
mov dword [esp + 0x27c], eax
mov eax, ebx
shl eax, 1
and eax, 0xd8fdb280
xor ebx, 0x938126bf
add ebx, 1
sub ebx, eax
mov edx, ecx
and edx, 0xa4
xor edx, 0xe1aad4a4
mov eax, ecx
add eax, 1
xor ecx, 0xffffffff
or ecx, 0x1e552b5b
add ecx, eax
mov eax, ebx
and eax, 0xe1aad4a4
mov esi, ebx
xor esi, 0xe1aad4a4
or ebx, 0x1e552b5b
and ebx, esi
or edx, ecx
mov ecx, ebx
and ecx, 0xe1aad4a4
xor eax, ebx
xor eax, 0xe1aad4a4
or eax, ecx
mov ecx, edx
and ecx, eax
shl ecx, 1
add edx, eax
sub edx, ecx
mov ecx, edx
and ecx, 0x63f6c9ff
mov eax, edx
and eax, 0x9c093600
xor eax, 0x9c093600
and edx, 0x9c093600
xor edx, 0x9c093600
or edx, eax
xor edx, 0xffffffff
add ecx, edx
mov eax, ecx
shl eax, 1
and eax, 2
xor ecx, 1
add ecx, eax
mov eax, dword [esp + 0x27c]
mov byte [esp + eax + 0x6a], cl
add eax, 1
jmp 0x413bd0
mov eax, dword [esp + 0x6a]
cmp dword [esp + 0x280], eax
mov esi, dword [esp + 0x2c]
jne 0x413d4d
jmp 0x413d67
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
call fcn.00409390
mov cl, byte [esp + 0x194]
mov byte [esp + 0x1f0], cl
mov byte [esp + 0x6e], 0x3e
mov byte [esp + 0x6f], 0x1b
mov byte [esp + 0x70], 0x1c
mov byte [esp + 0x71], 0x1d
xor ecx, ecx
cmp ecx, 4
jae 0x413d18
movzx esi, byte [esp + ecx + 0x6e]
mov edx, ecx
add edx, 0xc5e8e24a
xor edx, esi
mov esi, edx
shl esi, 1
and esi, 0x5e
mov edi, edx
shl edi, 1
and edi, 0x5e
add edx, esi
sub edx, edi
add dl, 0xb0
mov byte [esp + ecx + 0x6e], dl
add ecx, 1
jmp 0x413ce6
cdq
idiv dword [esp + 0x6e]
lea eax, [0x440b8c]
add eax, edx
movsx eax, byte [eax]
mov edx, dword [esp + 0x274]
mov ecx, edx
add ecx, 2
mov word [edx], ax
mov eax, ebx
and eax, 1
or ebx, 1
add ebx, eax
mov eax, dword [esp + 0x278]
jmp 0x413a27
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.0043a680
jmp 0x413d5b
xor ebx, ebx
mov eax, 4
jmp 0x4140bd
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x25c], eax
mov al, byte [esp + 0x184]
mov byte [esp + 0x1fc], al
mov byte [esp + 0x66], 0x9f
mov byte [esp + 0x67], 0x9c
mov byte [esp + 0x68], 0x9d
mov byte [esp + 0x69], 0x9e
xor ebx, ebx
cmp ebx, 4
jae 0x413dd0
movzx eax, byte [esp + ebx + 0x66]
mov edx, ebx
add edx, 0x83
mov ecx, 0x7c
sub ecx, ebx
mov esi, 0x7c
sub esi, ebx
and ecx, esi
or edx, eax
xor eax, 0xffffffff
or ecx, eax
and edx, ecx
add dl, 0xe8
mov byte [esp + ebx + 0x66], dl
add ebx, 1
jmp 0x413d99
mov eax, dword [esp + 0x25c]
add eax, dword [esp + 0x66]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x413df1
mov ecx, eax
mov dword [esp], ecx
call fcn.00408b20
mov ebx, eax
mov eax, dword [0x44964c]
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 + 0x2a0]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], esi
call eax
sub esp, 0x18
cmp eax, 0
setge al
test al, 1
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0xbc]
jne 0x413e75
jmp 0x413e55
jmp 0x413e57
mov dword [esp], ebx
call fcn.00408b30
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.0043a680
mov eax, 4
jmp 0x4140bd
cmp ecx, 0
jne 0x413f21
mov al, byte [esp + 0x180]
mov byte [esp + 0x200], al
mov byte [esp + 0xae], 0x50
mov byte [esp + 0xaf], 0xbf
mov byte [esp + 0xb0], 5
mov byte [esp + 0xb1], 0xa1
mov byte [esp + 0xb2], 0x3a
mov byte [esp + 0xb3], 0xa3
mov byte [esp + 0xb4], 1
mov byte [esp + 0xb5], 0xa5
mov byte [esp + 0xb6], 0xa6
mov byte [esp + 0xb7], 0xa7
xor eax, eax
cmp eax, 0xa
jae 0x413f09
mov cl, byte [esp + eax + 0xae]
mov dl, al
add dl, 0xce
xor dl, cl
add dl, 0x90
mov byte [esp + eax + 0xae], dl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x413ede
lea eax, [esp + 0xae]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00415820
jmp 0x4140b9
cmp ecx, 1
sete al
jmp 0x413f29
test al, 1
jne 0x413f32
jmp 0x413ff9
mov al, byte [esp + 0x17c]
mov byte [esp + 0x204], al
mov byte [esp + 0xa4], 0x9e
mov byte [esp + 0xa5], 0xb1
mov byte [esp + 0xa6], 0xd6
mov byte [esp + 0xa7], 0xb3
mov byte [esp + 0xa8], 0xd8
mov byte [esp + 0xa9], 0xb5
mov byte [esp + 0xaa], 0xda
mov byte [esp + 0xab], 0xb7
mov byte [esp + 0xac], 0xb8
mov byte [esp + 0xad], 0xb9
xor eax, eax
cmp eax, 0xa
jae 0x413fdd
movzx edx, byte [esp + eax + 0xa4]
mov esi, eax
add esi, 0x16cc7630
mov ecx, edx
xor ecx, 0xffffffff
and esi, ecx
mov ecx, 0xcf
sub ecx, eax
and ecx, edx
or ecx, esi
add ecx, 0x499c4e7f
mov edx, ecx
xor edx, 0xa
shl ecx, 1
and ecx, 0xea
sub ecx, edx
add cl, 0xb
mov byte [esp + eax + 0xa4], cl
add eax, 1
jmp 0x413f92
lea eax, [esp + 0xa4]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00415820
mov esi, dword [esp + 0x2c]
jmp 0x4140b9
cmp ecx, 2
jne 0x4140b9
mov al, byte [esp + 0x178]
mov byte [esp + 0x208], al
mov byte [esp + 0x9a], 0x20
mov byte [esp + 0x9b], 0xcf
mov byte [esp + 0x9c], 0x20
mov byte [esp + 0x9d], 0xb1
mov byte [esp + 0x9e], 0x21
mov byte [esp + 0x9f], 0xb3
mov byte [esp + 0xa0], 0x65
mov byte [esp + 0xa1], 0xb5
mov byte [esp + 0xa2], 0xb6
mov byte [esp + 0xa3], 0xb7
xor eax, eax
cmp eax, 0xa
jae 0x4140a6
movzx edx, byte [esp + eax + 0x9a]
mov ecx, eax
add ecx, 0xc1cb5e3e
xor ecx, edx
mov edx, ecx
xor edx, 0xc47f074d
shl ecx, 1
and ecx, 0x7701f164
sub ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0x1e
xor ecx, 0xf
add ecx, edx
add cl, 0x4e
mov byte [esp + eax + 0x9a], cl
add eax, 1
jmp 0x414062
lea eax, [esp + 0x9a]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00415820
xor eax, eax
jmp 0x4140bd
cmp eax, 0
sete cl
test cl, 1
jne 0x4140ca
jmp 0x4140ce
xor eax, eax
jmp 0x4140ce
cmp eax, 0
sete al
test al, 1
jne 0x4140dd
jmp 0x415452
lea eax, [esp + 0x24c]
xor ecx, ecx
mov dword [esp], ebx
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.0043e190
mov ecx, eax
cmp ecx, 0
mov dword [esp + 0x30], ebx
jl 0x41427d
mov eax, dword [esp + 0x250]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x24c]
xor esi, esi
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0043e8e0
mov ecx, eax
mov eax, dword [esp + 0x24c]
mov dword [esp + 0x290], eax
mov al, byte [esp + 0x1cc]
mov byte [esp + 0x230], al
mov byte [esp + 0x86], 0x7b
mov byte [esp + 0x87], 0x7a
mov byte [esp + 0x88], 0x79
mov byte [esp + 0x89], pe_nt_image_headers32
xor eax, eax
cmp eax, 4
jae 0x4141f3
movzx edx, byte [esp + eax + 0x86]
mov ebx, ecx
mov ecx, eax
add ecx, 0xd8762764
xor ecx, edx
mov edx, ecx
and edx, 0xdd
mov esi, ecx
and esi, 2
xor esi, 2
mov edi, ecx
and edi, 0xdd
imul edi, esi
mov esi, ecx
and esi, 2
or edx, 2
imul edx, esi
add edx, edi
mov edi, dword [esp + 0x34]
xor ecx, 0xdf
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x86], cl
mov ecx, ebx
add eax, 1
jmp 0x414195
mov eax, dword [esp + 0x86]
mov dword [esp + 0x270], eax
xor ebx, ebx
mov esi, dword [esp + 0x2c]
cmp ebx, dword [0x449650]
jb 0x414211
jmp 0x41427b
mov eax, dword [0x449654]
cmp dword [eax + ebx*8], 0xb430e561
sete dl
mov byte [esp + 0x51], dl
test dl, 1
jne 0x41422b
jmp 0x41426d
mov eax, dword [eax + ebx*8 + 4]
cmp eax, dword [esp + 0x270]
je 0x41426d
mov dword [esp + 0x294], ecx
mov ecx, dword [0x449658]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x290]
mov dword [esp + 0xc], eax
call fcn.0043c060
mov ecx, dword [esp + 0x294]
jmp 0x41426d
test byte [esp + 0x51], 1
je 0x414276
jmp 0x41427b
add ebx, 1
jmp 0x414207
jmp 0x41427d
mov ebx, ecx
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.0043a680
mov dword [esp + 0x38], 0
cmp ebx, 0
setge al
test al, 1
mov ecx, dword [esp + 0xbc]
mov ebx, dword [esp + 0x30]
jne 0x4142bc
jmp 0x4142aa
mov dword [esp + 0x3c], 0
mov eax, 4
jmp 0x41498e
cmp ecx, 1
sete al
test al, 1
jne 0x4142cb
jmp 0x414653
mov al, byte [esp + 0x174]
mov byte [esp + 0x20c], al
mov byte [esp + 0x59], 0x64
mov byte [esp + 0x5a], 0x6d
mov byte [esp + 0x5b], 4
xor eax, eax
cmp eax, 3
jae 0x414320
movzx esi, byte [esp + eax + 0x59]
mov ecx, 0x6d
sub ecx, eax
or ecx, esi
mov edx, 0x6d
sub edx, eax
and edx, esi
xor ecx, 0xffffffff
or edx, ecx
add dl, 0x70
mov byte [esp + eax + 0x59], dl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x4142ea
lea eax, [esp + 0x59]
mov ecx, dword [esp + 0x4c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00402460
mov dword [esp + 0x154], eax
mov al, byte [esp + 0x170]
mov byte [esp + 0x210], al
mov byte [esp + 0x56], 0xbb
mov byte [esp + 0x57], 0xc9
mov byte [esp + 0x58], 0x5c
xor edx, edx
cmp edx, 3
jae 0x4143d4
movzx esi, byte [esp + edx + 0x56]
mov dword [esp + 0x254], esi
mov ecx, edx
add ecx, 0x1cb9d70a
mov eax, 0xf5
sub eax, edx
and eax, esi
xor esi, 0xffffffff
mov edi, ecx
and edi, esi
or eax, edi
mov edi, dword [esp + 0x34]
xor eax, 0xffffffff
mov ebx, ecx
and ebx, eax
mov eax, ebx
and eax, 2
xor eax, 2
mov esi, ebx
and esi, 0xfffffffd
imul esi, eax
mov eax, ebx
and eax, 2
or ebx, 2
imul ebx, eax
add ebx, esi
mov eax, ebx
xor eax, ecx
mov ecx, 0x75
sub ecx, edx
and ebx, ecx
shl ebx, 1
add eax, dword [esp + 0x254]
sub eax, ebx
mov ebx, dword [esp + 0x30]
add al, 0xb0
mov byte [esp + edx + 0x56], al
add edx, 1
jmp 0x41435a
lea eax, [esp + 0x56]
mov ecx, dword [esp + 0x4c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00402460
mov esi, eax
mov dword [esp], ebx
call fcn.00415870
mov ebx, eax
cmp dword [esp + 0x154], 0
setne al
mov dword [esp + 0x150], 0
mov byte [esp + 0x53], al
test al, 1
jne 0x414414
jmp 0x41442d
mov eax, dword [esp + 0x154]
mov dword [esp], eax
call fcn.00408d40
sub eax, 0xffffffff
mov dword [esp + 0x150], eax
cmp esi, 0
setne al
xor ecx, ecx
mov byte [esp + 0x54], al
test al, 1
jne 0x41443f
jmp 0x414456
mov dword [esp], esi
call fcn.00408d40
xor ecx, ecx
sub ecx, eax
add ecx, 0xffffffff
xor eax, eax
sub eax, ecx
mov ecx, eax
jmp 0x414456
add ebx, 9
add ebx, dword [esp + 0x150]
xor eax, eax
mov dword [esp + 0x29c], ecx
sub eax, ecx
sub ebx, eax
sub ebx, 0xffffffff
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x414488
mov ecx, eax
mov dword [esp + 0x2a4], esi
mov dword [esp], ecx
call fcn.00408b20
mov dword [esp + 0x3c], eax
mov al, byte [esp + 0x16c]
mov byte [esp + 0x214], al
mov byte [esp + 0xd2], 0xa3
mov byte [esp + 0xd3], 0x52
mov byte [esp + 0xd4], 0xa6
mov byte [esp + 0xd5], 0x54
mov byte [esp + 0xd6], 0xab
mov byte [esp + 0xd7], 0x56
mov byte [esp + 0xd8], 0xb3
mov byte [esp + 0xd9], 0x68
mov byte [esp + 0xda], 0x95
mov byte [esp + 0xdb], 0x6a
mov byte [esp + 0xdc], 0x97
mov byte [esp + 0xdd], 0x6c
mov byte [esp + 0xde], 0x5e
mov byte [esp + 0xdf], 0x6e
mov byte [esp + 0xe0], 0x5d
mov byte [esp + 0xe1], 0x60
mov byte [esp + 0xe2], 0x61
mov byte [esp + 0xe3], 0x62
xor eax, eax
mov ebx, dword [esp + 0x30]
cmp eax, 0x12
jae 0x41456a
mov dl, byte [esp + eax + 0xd2]
mov esi, eax
xor esi, 0x67
mov ecx, eax
shl ecx, 1
and ecx, 0x30
sub ecx, esi
xor cl, dl
add cl, 0x38
mov byte [esp + eax + 0xd2], cl
add eax, 1
jmp 0x41453f
lea eax, [esp + 0xd2]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040a8d0
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], ebx
call fcn.0040a8d0
mov ecx, ebx
mov ebx, eax
add ebx, 2
mov word [eax], 0x22
cmp ecx, 0
sete al
mov esi, dword [esp + 0x2c]
test al, 1
jne 0x4145c8
jmp 0x4145bc
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00408b30
test byte [esp + 0x53], 1
jne 0x4145d1
jmp 0x41460f
mov edi, ebx
add edi, 2
mov word [ebx], 0x2c
xor eax, eax
mov dword [esp], edi
mov eax, dword [esp + 0x150]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x154]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040b710
shl eax, 1
mov ebx, edi
add ebx, eax
mov edi, dword [esp + 0x34]
jmp 0x41460f
test byte [esp + 0x54], 1
jne 0x414618
jmp 0x41464a
mov eax, ebx
add eax, 2
mov word [ebx], 0x2c
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x29c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2a4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040b710
xor ebx, ebx
xor ecx, ecx
jmp 0x41498c
cmp ecx, 2
sete al
mov dword [esp + 0x3c], 0
test al, 1
jne 0x41466a
jmp 0x41498c
mov dword [esp], ebx
call fcn.00415870
add eax, 0x3cf24117
sub eax, 0x3cf240fa
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x414695
mov ecx, eax
mov dword [esp], ecx
call fcn.00408b20
mov dword [esp + 0x3c], eax
mov al, byte [esp + 0x168]
mov byte [esp + 0x218], al
mov byte [esp + 0x62], 0xdd
mov byte [esp + 0x63], 0xb0
mov byte [esp + 0x64], 0xb1
mov byte [esp + 0x65], 0xb2
xor eax, eax
cmp eax, 4
jae 0x414736
movzx edi, byte [esp + eax + 0x62]
mov edx, 0x2c848478
sub edx, eax
or edx, edi
mov ecx, pe_nt_image_headers32
sub ecx, eax
mov esi, pe_nt_image_headers32
sub esi, eax
or ecx, esi
and ecx, edi
xor edx, 0xffffffff
or ecx, edx
mov edx, ecx
and edx, 0x642423c5
mov esi, ecx
and esi, 2
xor esi, 2
mov edi, ecx
and edi, 0x642423c5
imul edi, esi
mov esi, ecx
and esi, 2
or edx, 2
imul edx, esi
add edx, edi
mov edi, dword [esp + 0x34]
xor ecx, 0x642423c7
mov esi, ecx
add esi, edx
and ecx, 1
or esi, 1
add ecx, esi
mov byte [esp + eax + 0x62], cl
add eax, 1
jmp 0x4146c5
mov al, byte [esp + 0x164]
mov byte [esp + 0x21c], al
mov byte [esp + 0x116], 0x25
mov byte [esp + 0x117], 0x96
mov byte [esp + 0x118], 0x28
mov byte [esp + 0x119], 0x68
mov byte [esp + 0x11a], 0xde
mov byte [esp + 0x11b], 0x6a
mov byte [esp + 0x11c], 0xce
mov byte [esp + 0x11d], 0x6c
mov byte [esp + 0x11e], 0xdf
mov byte [esp + 0x11f], 0x6e
mov byte [esp + 0x120], 0xdc
mov byte [esp + 0x121], 0x60
mov byte [esp + 0x122], 0xd9
mov byte [esp + 0x123], 0x62
mov byte [esp + 0x124], 0xc6
mov byte [esp + 0x125], 0x64
mov byte [esp + 0x126], 0xd9
mov byte [esp + 0x127], 0x66
mov byte [esp + 0x128], 0xdb
mov byte [esp + 0x129], pe_nt_image_headers32
mov byte [esp + 0x12a], 0x99
mov byte [esp + 0x12b], 0x7a
mov byte [esp + 0x12c], 0x86
mov byte [esp + 0x12d], 0x7c
mov byte [esp + 0x12e], 0xd8
mov byte [esp + 0x12f], 0x7e
mov byte [esp + 0x130], 0xf7
mov byte [esp + 0x131], 0x70
mov byte [esp + 0x132], 0xd4
mov byte [esp + 0x133], 0x72
mov byte [esp + 0x134], 0xd0
mov byte [esp + 0x135], 0x74
mov byte [esp + 0x136], 0x95
mov byte [esp + 0x137], 0x76
mov byte [esp + 0x138], 0xd5
mov byte [esp + 0x139], 0x48
mov byte [esp + 0x13a], 0xc0
mov byte [esp + 0x13b], 0x4a
mov byte [esp + 0x13c], 0xfb
mov byte [esp + 0x13d], 0x4c
mov byte [esp + 0x13e], 0xec
mov byte [esp + 0x13f], 0x4e
mov byte [esp + 0x140], 0xfc
mov byte [esp + 0x141], 0x40
mov byte [esp + 0x142], 0xf2
mov byte [esp + 0x143], 0x42
mov byte [esp + 0x144], 0xa3
mov byte [esp + 0x145], 0x44
mov byte [esp + 0x146], 0xb8
mov byte [esp + 0x147], 0x46
mov byte [esp + 0x148], 0xe1
mov byte [esp + 0x149], 0x58
mov byte [esp + 0x14a], 0xb9
mov byte [esp + 0x14b], 0x5a
mov byte [esp + 0x14c], 0xb9
mov byte [esp + 0x14d], 0x5c
mov byte [esp + 0x14e], 0x5d
mov byte [esp + 0x14f], 0x5e
xor eax, eax
cmp eax, 0x3a
jae 0x414950
movzx edx, byte [esp + eax + 0x116]
mov ecx, eax
add ecx, 0xbc312f7d
mov esi, ecx
and esi, edx
shl esi, 1
add ecx, edx
sub ecx, esi
mov edx, ecx
shl edx, 1
and edx, 0x2e
xor ecx, 0x17
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x116], cl
add eax, 1
jmp 0x414916
lea eax, [esp + 0x116]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040a8d0
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.0040a8d0
lea ecx, [esp + 0x62]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a8d0
mov ecx, 2
mov esi, dword [esp + 0x2c]
xor eax, eax
cmp eax, 0
je 0x414c5a
jmp 0x415452
call fcn.00415890
xor ebx, 1
mov ecx, dword [esp + 0xbc]
mov eax, ecx
xor eax, 2
or ebx, eax
sete al
test al, 1
jne 0x4149c8
mov dword [esp + 0x3c], 0
xor ebx, ebx
jmp 0x414c5a
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.00415480
mov ebx, eax
sub ebx, 0x5bf7853f
add ebx, 1
add ebx, 0x5bf7853f
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4149fd
mov ecx, eax
mov dword [esp], ecx
call fcn.00408b20
mov edi, eax
mov eax, dword [esp + 0x38]
xor ecx, ecx
mov dword [esp], edi
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040b710
mov eax, dword [esp + 0x250]
add eax, 0x18
add eax, 0x71b10638
add eax, 1
sub eax, 0x71b10638
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x414a52
mov ecx, eax
mov dword [esp], ecx
call fcn.00408b20
mov ebx, eax
mov al, byte [esp + 0x160]
mov byte [esp + 0x220], al
mov byte [esp + 0xe4], 0xbd
mov byte [esp + 0xe5], 0xe
mov byte [esp + 0xe6], 0xb0
mov byte [esp + 0xe7], 0
mov byte [esp + 0xe8], 0xb6
mov byte [esp + 0xe9], 2
mov byte [esp + 0xea], 0xa6
mov byte [esp + 0xeb], 4
mov byte [esp + 0xec], 0xb7
mov byte [esp + 0xed], 6
mov byte [esp + 0xee], 0xb4
mov byte [esp + 0xef], 0x18
mov byte [esp + 0xf0], 0xa1
mov byte [esp + 0xf1], 0x1a
mov byte [esp + 0xf2], 0xbe
mov byte [esp + 0xf3], 0x1c
mov byte [esp + 0xf4], 0xa1
mov byte [esp + 0xf5], 0x1e
mov byte [esp + 0xf6], 0xa3
mov byte [esp + 0xf7], 0x10
mov byte [esp + 0xf8], 0x71
mov byte [esp + 0xf9], 0x12
mov byte [esp + 0xfa], 0x6e
mov byte [esp + 0xfb], 0x14
mov byte [esp + 0xfc], 0xb0
mov byte [esp + 0xfd], 0x16
mov byte [esp + 0xfe], 0x9f
mov byte [esp + 0xff], 0x68
mov byte [esp + 0x100], 0xcc
mov byte [esp + 0x101], 0x6a
mov byte [esp + 0x102], 0xc8
mov byte [esp + 0x103], 0x6c
mov byte [esp + 0x104], 0xd
mov byte [esp + 0x105], 0x6e
mov byte [esp + 0x106], 0xcd
mov byte [esp + 0x107], 0x60
mov byte [esp + 0x108], 0xe8
mov byte [esp + 0x109], 0x62
mov byte [esp + 0x10a], 0xd3
mov byte [esp + 0x10b], 0x64
mov byte [esp + 0x10c], 0xc4
mov byte [esp + 0x10d], 0x66
mov byte [esp + 0x10e], 0xd4
mov byte [esp + 0x10f], pe_nt_image_headers32
mov byte [esp + 0x110], 0xca
mov byte [esp + 0x111], 0x7a
mov byte [esp + 0x112], 0x1b
mov byte [esp + 0x113], 0x7c
mov byte [esp + 0x114], 0x7d
mov byte [esp + 0x115], 0x7e
xor eax, eax
cmp eax, 0x32
jae 0x414c1e
mov cl, byte [esp + eax + 0xe4]
mov dl, al
add dl, 0x25
xor dl, cl
add dl, 0xd8
mov byte [esp + eax + 0xe4], dl
add eax, 1
jmp 0x414bfc
lea eax, [esp + 0xe4]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.0040a8d0
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.0040a8d0
mov dword [esp], edi
call fcn.00408b30
mov dword [esp + 0x3c], ebx
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0xbc]
jmp 0x414c56
xor ebx, ebx
jmp 0x414c5a
test ecx, ecx
je 0x414c7b
jmp 0x414c60
mov eax, ecx
sub eax, 1
je 0x414e4d
jmp 0x414c6d
sub ecx, 2
je 0x41518a
jmp 0x415422
test byte [esp + 0x55], 1
jne 0x414c87
jmp 0x414e4d
call fcn.00415890
lea edi, [esp + 0x320]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov dword [esp + 0x320], 0x44
mov eax, dword [0x448644]
mov dword [esp], eax
mov dword [esp + 4], 0x755f867b
call fcn.0043dba0
test eax, eax
setne cl
xor ecx, ecx
lea ecx, [esp + 0x320]
lea edx, [esp + 0x2cc]
mov dword [esp], ebx
mov edi, dword [esp + 0x3c]
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
setne al
test al, 1
mov edi, dword [esp + 0x34]
jne 0x414d2c
jmp 0x414e48
mov eax, dword [esp + 0x2cc]
mov dword [esp + 0x284], eax
mov al, byte [esp + 0x1c8]
mov byte [esp + 0x234], al
mov byte [esp + 0x82], 0x7b
mov byte [esp + 0x83], 0x7a
mov byte [esp + 0x84], 0x79
mov byte [esp + 0x85], pe_nt_image_headers32
xor eax, eax
cmp eax, 4
jae 0x414dc4
movzx edx, byte [esp + eax + 0x82]
mov ecx, eax
add ecx, 0xd8762764
xor ecx, edx
mov edx, ecx
and edx, 0xdd
mov esi, ecx
and esi, 2
xor esi, 2
mov edi, ecx
and edi, 0xdd
imul edi, esi
mov esi, ecx
and esi, 2
or edx, 2
imul edx, esi
mov esi, dword [esp + 0x2c]
add edx, edi
xor ecx, 0xdf
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x82], cl
add eax, 1
jmp 0x414d6a
mov ecx, dword [esp + 0x82]
xor edi, edi
cmp edi, dword [0x449650]
jb 0x414dd7
jmp 0x414e42
mov dword [esp + 0x30], ebx
mov eax, dword [0x449654]
cmp dword [eax + edi*8], 0xb430e561
sete bl
test bl, 1
jne 0x414df1
jmp 0x414e2e
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x414e2e
mov dword [esp + 0x264], ecx
mov ecx, dword [0x449658]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x284]
mov dword [esp + 0xc], eax
call fcn.0043c060
mov ecx, dword [esp + 0x264]
jmp 0x414e2e
test bl, 1
je 0x414e39
mov ebx, dword [esp + 0x30]
jmp 0x414e42
add edi, 1
mov ebx, dword [esp + 0x30]
jmp 0x414dcd
mov edi, dword [esp + 0x34]
jmp 0x414e48
jmp 0x415422
call fcn.00415890
mov eax, dword [0x448644]
mov dword [esp], eax
mov dword [esp + 4], 0x4e0c8565
call fcn.0043dba0
test eax, eax
setne cl
mov ecx, dword [esp + 0x38]
xor edx, edx
lea edx, [0x4235b0]
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 0x414eb4
jmp 0x415185
mov dword [esp + 0x30], ebx
mov cl, byte [esp + 0x15c]
mov byte [esp + 0x224], cl
mov byte [esp + 0x92], 0xe3
mov byte [esp + 0x93], 0xae
mov byte [esp + 0x94], 0x29
mov byte [esp + 0x95], 0x8a
mov byte [esp + 0x96], 0xe8
mov byte [esp + 0x97], 0x97
mov byte [esp + 0x98], 0x96
mov byte [esp + 0x99], 0x95
xor ecx, ecx
cmp ecx, 8
jae 0x414f5a
movzx ebx, byte [esp + ecx + 0x92]
mov edi, 0x2ba3dbc4
sub edi, ecx
or edi, ebx
mov edx, 0xc4
sub edx, ecx
mov esi, 0xc4
sub esi, ecx
or edx, esi
and edx, ebx
xor edx, edi
mov esi, edx
shl esi, 1
xor esi, 0xffffffff
add edx, esi
mov esi, edx
shl esi, 1
and esi, 0x4e
xor edx, 0x27
add edx, esi
mov esi, dword [esp + 0x2c]
add dl, 1
mov byte [esp + ecx + 0x92], dl
add ecx, 1
jmp 0x414f08
mov ecx, dword [esp + 0x92]
mov edx, dword [esp + 0x96]
mov dword [esp + 0x2b4], edx
mov dword [esp + 0x2b0], ecx
mov cl, byte [esp + 0x228]
mov byte [esp + 0x22c], cl
mov byte [esp + 0x8a], 0x7b
mov byte [esp + 0x8b], 0x7a
mov byte [esp + 0x8c], 0x79
mov byte [esp + 0x8d], pe_nt_image_headers32
xor ecx, ecx
cmp ecx, 4
jae 0x415000
movzx esi, byte [esp + ecx + 0x8a]
mov edx, ecx
add edx, 0xd8762764
xor edx, esi
mov edi, edx
and edi, 0xdd
mov esi, edx
and esi, 2
xor esi, 2
mov ebx, edx
and ebx, 0xdd
imul ebx, esi
mov esi, edx
and esi, 2
or edi, 2
imul edi, esi
mov esi, dword [esp + 0x2c]
add edi, ebx
xor edx, 0xdf
add edx, edi
cli
add dl, 1
mov byte [esp + ecx + 0x8a], dl
add ecx, 1
jmp 0x414fa6
mov edi, dword [esp + 0x8a]
xor ebx, ebx
cmp ebx, dword [0x449650]
jb 0x415013
jmp 0x41508e
mov ecx, dword [0x449654]
cmp dword [ecx + ebx*8], 0xa67d73aa
cmp al, 0xd9
stosb byte es:[edi], al
jae 0x41509c
cmpsb byte [esi], byte es:[edi]
sete dl
test dl, 1
jne case.0x429a13.6
jmp 0x41507f
mov ecx, dword [ecx + ebx*8 + 4]
cmp ecx, edi
je 0x41507f
mov byte [esp + 0x52], dl
mov edx, dword [0x449658]
xor esi, esi
lea esi, [esp + 0x2b0]
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, dword [esp + 0x2c]
mov dword [esp + 0x158], eax
call fcn.0043c060
mov dl, byte [esp + 0x52]
mov eax, dword [esp + 0x158]
test dl, 1
je 0x415086
jmp 0x41508e
add ebx, 1
jmp 0x415009
mov cl, byte [esp + 0x1c4]
mov byte [esp + 0x238], cl
mov byte [esp + 0x7e], 0x7b
mov byte [esp + 0x7f], 0x7a
mov byte [esp + 0x80], 0x79
mov byte [esp + 0x81], pe_nt_image_headers32
xor ecx, ecx
cmp ecx, 4
jae 0x41510c
movzx esi, byte [esp + ecx + 0x7e]
mov edx, ecx
add edx, 0xd8762764
daa
jbe 0x4150a2
xor edx, esi
mov edi, edx
and edi, 0xdd
mov esi, edx
and esi, 2
xor esi, 2
mov ebx, edx
and ebx, 0xdd
imul ebx, esi
mov esi, edx
and esi, 2
or edi, 2
imul edi, esi
mov esi, dword [esp + 0x2c]
add edi, ebx
xor edx, 0xdf
add edx, edi
add dl, 1
mov byte [esp + ecx + 0x7e], dl
add ecx, 1
jmp 0x4150b8
mov edi, dword [esp + 0x7e]
xor ebx, ebx
cmp ebx, dword [0x449650]
jb 0x41511c
jmp 0x41517d
mov ecx, dword [0x449654]
cmp dword [ecx + ebx*8], 0xb430e561
sete dl
test dl, 1
jne 0x415133
jmp 0x415171
mov ecx, dword [ecx + ebx*8 + 4]
cmp ecx, edi
je 0x415171
mov byte [esp + 0x50], dl
mov edx, dword [0x449658]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 4
mov dword [esp + 0xc], eax
mov dword [esp + 0x158], eax
call fcn.0043c060
mov dl, byte [esp + 0x50]
push eax
mov eax, dword [esp + 0x158]
jmp 0x415171
test dl, 1
je 0x415178
jmp 0x41517d
add ebx, 1
jmp 0x415112
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x30]
jmp 0x415422
lea edi, [esp + 0x2dc]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov dword [esp + 0x2dc], 0x44
mov eax, dword [0x448644]
inc esp
xchg byte [eax + eax - 0x77], al
add al, 0x24
mov dword [esp + 4], 0x755f867b
call fcn.0043dba0
test eax, eax
setne cl
xor ecx, ecx
lea ecx, [esp + 0x2dc]
lea edx, [esp + 0x2bc]
mov dword [esp], 0
and al, 0
add byte [eax], al
add byte [ebx - 0x76c3db84], cl
jl 0x415201
add al, 0xc7
inc esp
and al, 8
add byte [eax], al
add byte [eax], al
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
cmp eax, 0
je 0x41541e
mov eax, dword [esp + 0x2c0]
mov dword [esp + 0x28c], eax
mov al, byte [esp + 0x1c0]
mov byte [esp + 0x23c], al
mov byte [esp + 0x7a], 0x7b
mov byte [esp + 0x7b], 0x7a
mov byte [esp + 0x7c], 0x79
mov byte [esp + 0x7d], pe_nt_image_headers32
xor eax, eax
cmp eax, 4
jae 0x4152a6
movzx edx, byte [esp + eax + 0x7a]
mov ecx, eax
add ecx, 0xd8762764
xor ecx, edx
mov edx, ecx
and edx, 0xdd
mov esi, ecx
and esi, 2
xor esi, 2
mov edi, ecx
and edi, 0xdd
imul edi, esi
mov esi, ecx
and esi, 2
or edx, 2
imul edx, esi
add edx, edi
xor ecx, 0xdf
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x7a], cl
dec esp
add al, 0x7a
add eax, 1
jmp 0x415256
mov ecx, dword [esp + 0x7a]
xor edi, edi
cmp edi, dword [0x449650]
jb 0x4152b6
jmp 0x41531b
mov esi, ebx
mov eax, dword [0x449654]
cmp dword [eax + edi*8], 0xb430e561
sete bl
test bl, 1
jne 0x4152ce
jmp 0x41530b
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x41530b
mov dword [esp + 0x26c], ecx
mov ecx, dword [0x449658]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x28c]
mov dword [esp + 0xc], eax
call fcn.0043c060
mov ecx, dword [esp + 0x26c]
jmp 0x41530b
test bl, 1
je 0x415314
mov ebx, esi
jmp 0x41531b
add edi, 1
mov ebx, esi
jmp 0x4152ac
mov eax, dword [esp + 0x2bc]
mov dword [esp + 0x288], eax
mov al, byte [esp + 0x1bc]
mov byte [esp + 0x240], al
mov byte [esp + 0x76], 0x7b
mov byte [esp + 0x77], 0x7a
mov byte [esp + 0x78], 0x79
mov byte [esp + 0x79], pe_nt_image_headers32
xor eax, eax
cmp eax, 4
jae 0x41539d
movzx edx, byte [esp + eax + 0x76]
mov ecx, eax
add ecx, 0xd8762764
xor ecx, edx
mov edx, ecx
and edx, 0xdd
mov esi, ecx
and esi, 2
xor esi, 2
mov edi, ecx
and edi, 0xdd
imul edi, esi
mov esi, ecx
and esi, 2
or edx, 2
imul edx, esi
add edx, edi
xor ecx, 0xdf
add ecx, edx
rol dword [eax + 0x4c8801c1], 1
add al, 0x76
add eax, 1
jmp 0x41534d
mov ecx, dword [esp + 0x76]
xor edi, edi
mov esi, dword [esp + 0x2c]
cmp edi, dword [0x449650]
jb 0x4153b1
jmp 0x41541c
mov dword [esp + 0x30], ebx
mov eax, dword [0x449654]
cmp dword [eax + edi*8], 0xb430e561
sete bl
test bl, 1
jne 0x4153cb
jmp 0x415408
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x415408
mov dword [esp + 0x268], ecx
mov ecx, dword [0x449658]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x288]
mov dword [esp + 0xc], eax
call fcn.0043c060
mov ecx, dword [esp + 0x268]
jmp 0x415408
test bl, 1
je 0x415413
mov ebx, dword [esp + 0x30]
jmp 0x41541c
add edi, 1
mov ebx, dword [esp + 0x30]
jmp 0x4153a7
jmp 0x41541e
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.0043a680
cmp ebx, 0
je 0x41543f
mov dword [esp], ebx
call fcn.00408b30
jmp 0x41543d
jmp 0x41543f
mov eax, dword [esp + 0x3c]
cmp eax, 0
je 0x415450
mov dword [esp], eax
call fcn.00408b30
jmp 0x415452
jmp 0x415454
sub edi, 0x4a1ed660
add edi, 1
add edi, 0x4a1ed660
jmp 0x41339c
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret