Function at 0x40191d
Capabilities:
Encode data using base64
Encrypt data using rc4 ksa
Inspect section memory permissions

Disassembly:
push ebp
lea ebp, [esp - 0x6c]
sub esp, 0x90
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp + 0x68], eax
push ebx
push edi
push 0x5e
push 0x421548
push 2
pop edi
xor ebx, ebx
push edi
mov dword [ebp - 0x1c], 0xa0
mov dword [ebp - 0x24], ebx
call fcn.004058f0
cmp dword [ebp + 0x74], 1
je 0x401968
push 0x5a
push 0x421490
push edi
call fcn.004058f0
jmp 0x40548e
push esi
lea eax, [ebp - 0x20]
push eax
mov dword [ebp - 0x1c], ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_IsWow64Process]
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x40199d
call esi
push eax
push 0x421440
push edi
mov dword [ebp - 0x1c], eax
call fcn.00405770
add esp, 0xc
jmp 0x4019af
cmp dword [ebp - 0x20], ebx
je 0x4019af
push 0x43
push 0x4213b8
push edi
call fcn.004058f0
push ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadIdealProcessor]
cmp eax, 0xffffffff
jne 0x4019d6
call esi
push eax
push 0x421358
push edi
mov dword [ebp - 0x1c], eax
call fcn.00405770
add esp, 0xc
xor eax, eax
xor ecx, ecx
mov dword [ebp], ebx
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x10], ecx
jmp 0x4019f8
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov esi, 0xfff
test ecx, ecx
jne 0x401a1d
test eax, eax
jne 0x401a1d
test ebx, ebx
jne 0x401a1a
test edx, edx
je 0x403a99
mov ebx, dword [ebp + 0x14]
mov edi, dword [ebp]
cmp edi, 0x24
ja case.0x401a29.8
jmp dword [edi*4 + 0x4054a5]
mov dword [ebp + 0x5c], eax
lea eax, [ebp + 0x5c]
push eax
push ecx
push 0x421240
push 1
mov dword [ebp + 0x60], edx
mov dword [ebp + 0x64], ebx
call fcn.00405770
add esp, 0x10
jmp 0x403a99
push ecx
xor edi, edi
push 0x421180
inc edi
push edi
call fcn.00405770
add esp, 0xc
cmp dword [ebp + 0x5c], 0x756e6547
jne 0x401ad8
cmp dword [ebp + 0x60], 0x49656e69
jne 0x401b3f
cmp dword [ebp + 0x64], 0x6c65746e
jne 0x401b3f
mov esi, dword [ebp + 0xc]
mov ebx, esi
push esi
shr ebx, 8
call section..code
push eax
mov eax, esi
and eax, 0xf
push eax
mov ecx, esi
mov eax, ebx
and eax, 0xf00
and ecx, 0xf0
or eax, ecx
shr eax, 4
push eax
mov eax, esi
shr eax, 0x14
and eax, 0xff
and ebx, 0xf
add eax, ebx
push eax
shr esi, 0xc
and esi, 3
push esi
push 0x4210d8
push edi
call fcn.00405770
add esp, 0x1c
jmp 0x401b3f
cmp dword [ebp + 0x5c], 0x68747541
jne 0x401b3f
cmp dword [ebp + 0x60], 0x69746e65
jne 0x401b3f
cmp dword [ebp + 0x64], 0x444d4163
jne 0x401b3f
mov eax, dword [ebp + 0xc]
push 0xf
pop ebx
mov ecx, eax
mov edx, eax
shr ecx, 8
shr edx, 4
mov esi, eax
and ecx, ebx
and esi, ebx
and edx, ebx
cmp ecx, ebx
jne 0x401b26
mov ecx, eax
shr ecx, 0x14
shr eax, 0xc
and ecx, 0xff
and eax, 0xf0
add ecx, ebx
or edx, eax
push edx
push ecx
call fcn.00401611
push eax
push esi
push edx
push ecx
push 0x421048
push edi
call fcn.00405770
add esp, 0x18
movzx eax, byte [ebp + 0x10]
push eax
push 0x42101c
push edi
call fcn.00405770
add esp, 0xc
cmp byte [ebp + 0x10], 0
je 0x401b8d
cmp dword [ebp + 0x5c], 0x756e6547
jne 0x401b8d
cmp dword [ebp + 0x60], 0x49656e69
jne 0x401b8d
cmp dword [ebp + 0x64], 0x6c65746e
jne 0x401b8d
push dword [ebp + 0xc]
push dword [ebp + 0x10]
call fcn.0040182e
push eax
push 0x420ff0
push edi
call fcn.00405770
add esp, 0xc
push dword [ebp + 0x18]
movzx eax, byte [ebp + 0x13]
push dword [ebp + 0x14]
push eax
movzx eax, byte [ebp + 0x12]
push eax
movzx eax, byte [ebp + 0x11]
shl eax, 3
push eax
push 0x420f18
push edi
call fcn.00405770
mov eax, dword [ebp + 0x14]
add esp, 0x1c
test eax, 0x10000
jne 0x401bc6
test dword [ebp + 0x18], 0x100400
je 0x401bd6
push 0x30
push 0x420eb0
push edi
call fcn.004058f0
mov eax, dword [ebp + 0x14]
mov ebx, 0xfffeffff
test ebx, eax
jne 0x401bf7
test dword [ebp + 0x18], 0xffeffbff
jne 0x401bf7
push 8
push 0x420e98
push edi
call fcn.004058f0
jmp 0x401c64
bsf ecx, eax
mov esi, eax
je 0x401c20
push dword [ecx*4 + 0x411798]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf ecx, esi
jne 0x401bfe
mov eax, dword [ebp + 0x14]
test ebx, eax
je 0x401c3d
test dword [ebp + 0x18], 0xffeffbff
je 0x401c3d
push 2
push 0x420e80
push edi
call fcn.004058f0
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0x18]
bsf ecx, esi
je 0x401c67
push dword [ecx*4 + 0x411818]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf ecx, esi
jne 0x401c45
mov eax, dword [ebp + 0x14]
mov ecx, 0xc000000
and eax, ecx
sub eax, ecx
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x24], eax
jmp 0x403a99
push edx
push ebx
push eax
push ecx
push 0x420d78
push 1
call fcn.00405770
add esp, 0x18
cmp byte [ebp + 0xc], 1
jne 0x401c9a
shr dword [ebp + 0xc], 8
xor edi, edi
mov esi, dword [ebp + edi*4 + 0xc]
test esi, esi
js 0x401cca
je 0x401cca
mov eax, esi
and eax, 0xff
push dword [eax*4 + 0x413858]
push 0x420e88
push 1
call fcn.00405770
shr esi, 8
add esp, 0xc
test esi, esi
jne 0x401ca6
inc edi
cmp edi, 4
jb 0x401c9c
jmp 0x403a99
push edx
push ebx
push eax
push ecx
push 0x420c78
push 1
call fcn.00405770
add esp, 0x18
jmp 0x403a99
and dword [ebp + 8], 0
mov dword [ebp + 4], ecx
and dword [ebp + 4], 0x1f
je 0x403a99
jmp 0x401d09
mov edx, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov edi, 0x420c70
mov esi, 0x420c6c
mov dword [ebp - 0x18], 0x420c64
test dl, 4
jne 0x401d26
mov dword [ebp - 0x18], 0x420c54
mov dword [ebp - 0x14], esi
test dl, 2
jne 0x401d31
mov dword [ebp - 0x14], edi
mov dword [ebp - 0xc], edi
test dl, 1
jne 0x401d3c
mov dword [ebp - 0xc], esi
mov dword [ebp - 8], esi
test ecx, 0x200
jne 0x401d4a
mov dword [ebp - 8], edi
mov dword [ebp - 4], esi
test ecx, 0x100
jne 0x401d58
mov dword [ebp - 4], edi
shr edx, 3
push edx
push dword [ebp - 0x18]
mov esi, eax
push dword [ebp - 0x14]
mov edi, eax
push dword [ebp - 0xc]
inc ebx
push ebx
shr esi, 0x16
shr edi, 0xc
inc esi
push esi
and eax, 0xfff
and edi, 0x3ff
inc edi
push edi
inc eax
push eax
imul eax, edi
mov edx, ecx
imul eax, esi
shr edx, 0x1a
imul eax, ebx
inc edx
push edx
mov edx, ecx
shr edx, 0xe
and edx, 0xfff
inc edx
push edx
mov edx, ecx
shr edx, 0xa
and edx, 0xf
push edx
push dword [ebp - 8]
shr ecx, 5
push dword [ebp - 4]
and ecx, 7
push ecx
mov ecx, dword [ebp + 4]
push dword [ecx*4 + 0x413798]
push eax
push dword [ebp + 8]
push 0x420878
push 1
call fcn.00405770
add esp, 0x4c
inc dword [ebp + 8]
mov ecx, dword [ebp + 8]
push 4
pop eax
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov ecx, dword [ebp + 0xc]
mov dword [ebp + 4], ecx
and dword [ebp + 4], 0x1f
jne 0x401d00
jmp 0x403a99
movzx edx, word [ebp + 0x12]
push ebx
push edx
movzx eax, ax
push eax
movzx eax, word [ebp + 0xe]
push eax
movzx eax, cx
push eax
xor ebx, ebx
push 0x4206e8
inc ebx
push ebx
call fcn.00405770
add esp, 0x1c
test dword [ebp + 0x14], 0xfffffff4
je 0x401e3a
push 0x30
push 0x420eb0
push ebx
call fcn.004058f0
test byte [ebp + 0x14], 0xb
jne 0x401e4f
push 8
push 0x420e98
push ebx
call fcn.004058f0
jmp 0x401e76
mov esi, dword [ebp + 0x14]
bsf eax, esi
je 0x401e76
push dword [eax*4 + 0x4118a0]
push 0x420e88
push ebx
call fcn.00405770
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x401e57
cmp dword [ebp + 0x5c], 0x756e6547
jne 0x401eb9
cmp dword [ebp + 0x60], 0x49656e69
jne 0x401eb9
cmp dword [ebp + 0x64], 0x6c65746e
jne 0x401eb9
mov esi, dword [ebp + 0x18]
xor edi, edi
mov eax, esi
and eax, 0xf
push eax
push edi
push 0x4206a0
push ebx
call fcn.00405770
add esp, 0x10
inc edi
shr esi, 4
cmp edi, 8
jb 0x401e96
jmp 0x403a99
push dword [ebp + 0x18]
push 0x420660
push ebx
call fcn.00405770
add esp, 0xc
jmp 0x403a99
push ecx
xor ebx, ebx
push 0x4205b0
inc ebx
push ebx
call fcn.00405770
add esp, 0xc
test dword [ebp + 0xc], 0xfe201008
mov esi, 0x420eb0
je 0x401ef8
push 0x30
push esi
push ebx
call fcn.004058f0
mov edi, dword [ebp + 0xc]
test edi, 0x1dfeff7
jne 0x401f2c
push 8
push 0x420e98
push ebx
call fcn.004058f0
jmp 0x401f31
push dword [eax*4 + 0x411920]
push 0x420e88
push ebx
call fcn.00405770
lea eax, [edi - 1]
add esp, 0xc
and edi, eax
bsf eax, edi
jne 0x401f12
mov eax, dword [ebp + 0x10]
push dword [ebp + 0x14]
mov ecx, eax
shr ecx, 4
push ecx
and eax, 0xf
push eax
push 0x4204e8
push ebx
call fcn.00405770
add esp, 0x14
cmp dword [ebp + 0x5c], 0x756e6547
jne 0x401fd5
cmp dword [ebp + 0x60], 0x49656e69
jne 0x40203d
cmp dword [ebp + 0x64], 0x6c65746e
jne 0x40203d
test dword [ebp + 0x14], 0xfffffff4
je 0x401f84
push 0x30
push esi
push ebx
call fcn.004058f0
test byte [ebp + 0x14], 0xb
jne 0x401f99
push 8
push 0x420e98
push ebx
call fcn.004058f0
jmp 0x401fc0
mov esi, dword [ebp + 0x14]
bsf eax, esi
je 0x401fc0
push dword [eax*4 + 0x411a28]
push 0x420e88
push ebx
call fcn.00405770
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x401fa1
movzx eax, byte [ebp + 0x15]
push eax
push 0x420480
push ebx
call fcn.00405770
add esp, 0xc
jmp 0x40203d
cmp dword [ebp + 0x5c], 0x68747541
jne 0x40203d
cmp dword [ebp + 0x60], 0x69746e65
jne 0x40203d
cmp dword [ebp + 0x64], 0x444d4163
jne 0x40203d
test dword [ebp + 0x14], 0xfffffffe
je 0x402002
push 0x30
push esi
push ebx
call fcn.004058f0
test byte [ebp + 0x14], bl
jne 0x402016
push 8
push 0x420e98
push ebx
call fcn.004058f0
jmp 0x40203d
mov esi, dword [ebp + 0x14]
bsf eax, esi
je 0x40203d
push dword [eax*4 + 0x4119a8]
push 0x420e88
push ebx
call fcn.00405770
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x40201e
test dword [ebp + 0xc], 0x80000
je 0x40208d
mov ecx, dword [ebp + 0x18]
mov edx, 0x420c6c
test cl, 2
jne 0x402058
mov edx, 0x420c70
mov eax, 0x420c6c
test bl, cl
jne 0x402066
mov eax, 0x420c70
movzx esi, word [ebp + 0x1a]
push esi
movzx esi, ch
movzx ecx, cl
lea esi, [esi*4 + 4]
push esi
and ecx, 0xfc
push ecx
push edx
push eax
push 0x4202d0
push ebx
jmp 0x403a91
push dword [ebp + 0x18]
push 0x4202a4
jmp 0x401ec1
push edx
push ebx
push eax
push ecx
xor ebx, ebx
push 0x420188
inc ebx
push ebx
call fcn.00405770
add esp, 0x18
test dword [ebp + 0x18], 0x2210c0
je 0x4020c5
push 0x30
push 0x420eb0
push ebx
call fcn.004058f0
mov esi, dword [ebp + 0x10]
test esi, esi
jne 0x4020ec
cmp dword [ebp + 0x14], esi
jne 0x4020ec
test dword [ebp + 0x18], 0xffddef3f
jne 0x4020ec
push 8
push 0x420e98
push ebx
call fcn.004058f0
jmp 0x402189
mov edi, 0x420e88
bsf eax, esi
je 0x40210e
push dword [eax*4 + 0x411ab0]
push edi
push ebx
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
jmp 0x4020f1
cmp dword [ebp + 0x10], 0
je 0x402127
cmp dword [ebp + 0x14], 0
je 0x402127
push 2
push 0x420e80
push ebx
call fcn.004058f0
mov esi, dword [ebp + 0x14]
jmp 0x402142
push dword [eax*4 + 0x411b30]
push edi
push ebx
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x40212c
cmp dword [ebp + 0x10], 0
jne 0x402153
cmp dword [ebp + 0x14], 0
je 0x402169
test dword [ebp + 0x18], 0xffddef3f
je 0x402169
push 2
push 0x420e80
push ebx
call fcn.004058f0
mov esi, dword [ebp + 0x18]
jmp 0x402184
push dword [eax*4 + 0x411bb8]
push edi
push ebx
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x40216e
mov eax, dword [ebp + 0xc]
mov dword [ebp + 4], eax
mov dword [ebp + 8], ebx
cmp eax, ebx
jb 0x403a99
mov ecx, dword [ebp + 8]
push 7
pop eax
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
test eax, eax
jne 0x4021cc
test ecx, ecx
jne 0x4021cc
cmp dword [ebp + 0x14], ecx
jne 0x4021cc
cmp dword [ebp + 0x18], ecx
je 0x402375
mov edx, dword [ebp + 8]
dec edx
je 0x402263
dec edx
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push ecx
push eax
je 0x4021f8
push dword [ebp + 8]
push 0x420020
push 1
call fcn.00405770
add esp, 0x1c
jmp 0x402375
push 0x41fef0
push 1
call fcn.00405770
add esp, 0x18
test dword [ebp + 0x18], 0xffffff80
je 0x40221e
push 0x30
push 0x420eb0
push 1
call fcn.004058f0
test byte [ebp + 0x18], 0x7f
jne 0x402232
push 8
push 0x420e98
push 1
jmp 0x40234e
mov esi, dword [ebp + 0x18]
bsf eax, esi
je 0x402375
push dword [eax*4 + 0x411dc8]
push 0x420e88
push 1
call fcn.00405770
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x40223e
jmp 0x402375
push ecx
push eax
xor edi, edi
push 0x41fe18
inc edi
push edi
call fcn.00405770
add esp, 0x10
test dword [ebp + 0xc], 0xb301e000
jne 0x402288
test dword [ebp + 0x10], 0xfffffffc
je 0x402295
push 0x30
push 0x420eb0
push edi
call fcn.004058f0
mov esi, dword [ebp + 0xc]
mov ebx, 0x4cfe1fff
test ebx, esi
jne 0x4022d0
test byte [ebp + 0x10], 3
jne 0x4022d0
push 8
push 0x420e98
push edi
call fcn.004058f0
jmp 0x402311
push dword [eax*4 + 0x411c38]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x4022b6
test dword [ebp + 0xc], ebx
je 0x4022ed
test byte [ebp + 0x10], 3
je 0x4022ed
push 2
push 0x420e80
push edi
call fcn.004058f0
mov esi, dword [ebp + 0x10]
jmp 0x40230c
push dword [eax*4 + 0x411cc0]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x4022f2
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 0x41fdc8
push edi
call fcn.00405770
add esp, 0x10
test dword [ebp + 0x18], 0xff511acf
je 0x40233b
push 0x30
push 0x420eb0
push edi
call fcn.004058f0
mov esi, dword [ebp + 0x18]
test esi, 0xaee530
jne 0x402370
push 8
push 0x420e98
push edi
call fcn.004058f0
jmp 0x402375
push dword [eax*4 + 0x411d40]
push 0x420e88
push 1
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x402355
inc dword [ebp + 8]
mov eax, dword [ebp + 8]
cmp eax, dword [ebp + 4]
jbe 0x40219a
jmp 0x403a99
push edx
push ebx
push eax
push ecx
push 0x41fca8
jmp 0x401cde
push eax
movzx eax, byte [ebp + 0xf]
push eax
movzx eax, byte [ebp + 0xe]
push eax
movzx eax, ch
push eax
movzx eax, cl
push eax
xor edi, edi
push 0x41fa80
inc edi
push edi
call fcn.00405770
mov cl, byte [ebp + 0xf]
or eax, 0xffffffff
shl eax, cl
add esp, 0x1c
not eax
xor dword [ebp + 0x10], eax
test dword [ebp + 0x10], 0xffffe000
je 0x4023de
push 0x2c
push 0x41fa20
push edi
call fcn.004058f0
mov esi, dword [ebp + 0x10]
test esi, 0x1fff
jne 0x402412
push 8
push 0x420e98
push edi
call fcn.004058f0
jmp 0x402417
push dword [eax*4 + 0x411e48]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x4023f8
mov eax, dword [ebp + 0x18]
mov ecx, 0x420c6c
test eax, 0x8000
jne 0x40242b
mov ecx, 0x420c70
movzx edx, word [ebp + 0x1a]
push edx
push ecx
mov ecx, eax
shr ecx, 0xd
and ecx, 3
push ecx
mov ecx, eax
shr ecx, 5
and ecx, 0xff
push ecx
and eax, 0x1f
push eax
push dword [ebp + 0x14]
push 0x41f840
push edi
call fcn.00405770
add esp, 0x20
jmp 0x403a99
and dword [ebp + 8], 0
test bh, bh
je 0x403a99
jmp 0x402477
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
push edx
movzx edx, word [ebp + 0x16]
push edx
movzx edx, bh
push edx
movzx edx, bl
push edx
movzx edx, word [ebp + 0x12]
movzx eax, ax
push edx
push eax
mov eax, ecx
shr eax, 5
push eax
xor eax, eax
and ecx, 0x1f
inc eax
shl eax, cl
push eax
push dword [ebp + 8]
push 0x41f620
push 1
call fcn.00405770
add esp, 0x2c
inc dword [ebp + 8]
mov ecx, dword [ebp + 8]
push 0xb
pop eax
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov ebx, dword [ebp + 0x14]
test bh, bh
jne 0x40246e
jmp 0x403a99
push ecx
push edx
xor edi, edi
push 0x41f528
inc edi
push edi
call fcn.00405770
add esp, 0x10
test dword [ebp + 0xc], 0xfff80000
jne 0x4024f9
test dword [ebp + 0x18], 0xbfffffff
je 0x402506
push 0x32
push 0x41f4c0
push edi
call fcn.004058f0
mov esi, dword [ebp + 0xc]
mov ebx, 0x7ffff
test ebx, esi
jne 0x402544
test dword [ebp + 0x18], 0x40000000
jne 0x402544
push 8
push 0x420e98
push edi
call fcn.004058f0
jmp 0x402588
push dword [eax*4 + 0x411ed0]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x40252a
test dword [ebp + 0xc], ebx
je 0x402564
test dword [ebp + 0x18], 0x40000000
je 0x402564
push 2
push 0x420e80
push edi
call fcn.004058f0
mov esi, dword [ebp + 0x18]
jmp 0x402583
push dword [eax*4 + 0x411f50]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x402569
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x41f3f0
push edi
call fcn.00405770
add esp, 0x10
push 0xd
pop eax
mov ecx, edi
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
xor eax, eax
mov dword [esi + 0xc], edx
cmp dword [ebp + 0xc], eax
jne 0x4025cb
cmp dword [ebp + 0x10], eax
jne 0x4025cb
cmp dword [ebp + 0x14], eax
jne 0x4025cb
cmp dword [ebp + 0x18], eax
je 0x4026e9
push dword [ebp + 0xc]
xor edi, edi
push 0x41f330
inc edi
push edi
call fcn.00405770
add esp, 0xc
test dword [ebp + 0xc], 0xffffffe0
je 0x4025f5
push 0x30
push 0x420eb0
push edi
call fcn.004058f0
test byte [ebp + 0xc], 0x1f
jne 0x40260a
push 8
push 0x420e98
push edi
call fcn.004058f0
jmp 0x402631
mov esi, dword [ebp + 0xc]
bsf eax, esi
je 0x402631
push dword [eax*4 + 0x411fd8]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x402612
push dword [ebp + 0x14]
push dword [ebp + 0x18]
push dword [ebp + 0x10]
push 0x41f258
push edi
call fcn.00405770
add esp, 0x14
test dword [ebp + 0x14], 0xfff80000
jne 0x40265a
test dword [ebp + 0x18], 0xbfffffff
je 0x402667
push 0x32
push 0x41f4c0
push edi
call fcn.004058f0
mov esi, dword [ebp + 0x14]
mov ebx, 0x7ffff
test ebx, esi
jne 0x4026a5
test dword [ebp + 0x18], 0x40000000
jne 0x4026a5
push 8
push 0x420e98
push edi
call fcn.004058f0
jmp 0x4026e9
push dword [eax*4 + 0x411ed0]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x40268b
test dword [ebp + 0x14], ebx
je 0x4026c5
test dword [ebp + 0x18], 0x40000000
je 0x4026c5
push 2
push 0x420e80
push edi
call fcn.004058f0
mov esi, dword [ebp + 0x18]
jmp 0x4026e4
push dword [eax*4 + 0x411f50]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x4026ca
push 0xd
xor ecx, ecx
pop eax
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov eax, dword [ebp + 0xc]
and eax, 0xfffffffc
mov dword [ebp + 4], eax
bsf eax, eax
jmp 0x402791
mov ecx, dword [ebp + 8]
cpuid
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov eax, dword [ebp + 0x14]
xor ecx, ecx
cmp dword [ebp + 0xc], ecx
jne 0x402737
cmp dword [ebp + 0x10], ecx
jne 0x402737
cmp eax, ecx
jne 0x402737
cmp dword [ebp + 0x18], ecx
je 0x402786
mov esi, 0x420c6c
test al, 4
jne 0x402745
mov esi, 0x420c70
mov edx, 0x41f254
test al, 2
jne 0x402753
mov edx, 0x41f250
mov ecx, 0x41f244
test al, 1
jne 0x402761
mov ecx, 0x41f23c
push dword [ebp + 0x18]
shr eax, 3
push eax
push esi
push edx
push ecx
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp + 8]
push 0x41efe8
push 1
call fcn.00405770
add esp, 0x2c
mov eax, dword [ebp + 4]
dec eax
and dword [ebp + 4], eax
bsf eax, dword [ebp + 4]
push 0xd
mov dword [ebp + 8], eax
lea esi, [ebp + 0xc]
pop eax
jne 0x40270f
xor ecx, ecx
cpuid
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov eax, dword [ebp + 0x18]
bsf ecx, eax
mov dword [ebp + 4], eax
je 0x403a99
add ecx, 0x20
push 0xd
mov dword [ebp + 8], ecx
pop eax
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov eax, dword [ebp + 0x14]
xor ecx, ecx
cmp dword [ebp + 0xc], ecx
jne 0x4027ef
cmp dword [ebp + 0x10], ecx
jne 0x4027ef
cmp eax, ecx
jne 0x4027ef
cmp dword [ebp + 0x18], ecx
je 0x40282f
mov edx, 0x41f254
test al, 2
jne 0x4027fd
mov edx, 0x41f250
mov ecx, 0x41f244
test al, 1
jne 0x40280b
mov ecx, 0x41f23c
push dword [ebp + 0x18]
shr eax, 2
push eax
push edx
push ecx
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp + 8]
push 0x41edc8
push 1
call fcn.00405770
add esp, 0x28
mov eax, dword [ebp + 4]
dec eax
and dword [ebp + 4], eax
bsf ecx, dword [ebp + 4]
jne 0x4027be
jmp 0x403a99
push edx
push ebx
push eax
push ecx
xor edi, edi
push 0x41ec58
inc edi
push edi
call fcn.00405770
add esp, 0x18
test dword [ebp + 0x18], 0xfffffffd
je 0x40286c
push 0x30
push 0x420eb0
push edi
call fcn.004058f0
test byte [ebp + 0x18], 2
jne 0x402881
push 8
push 0x420e98
push edi
call fcn.004058f0
jmp 0x4028a8
mov esi, dword [ebp + 0x18]
bsf eax, esi
je 0x4028a8
push dword [eax*4 + 0x412058]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x402889
mov eax, dword [ebp + 0x18]
and eax, 0xfffffffe
mov dword [ebp + 4], eax
bsf eax, eax
jmp 0x4029af
mov ecx, dword [ebp + 8]
push 0xf
pop eax
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov eax, dword [ebp + 8]
dec eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
je 0x4028f8
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push 0x41eae8
push 1
call fcn.00405770
add esp, 0x1c
jmp 0x4029a4
mov edx, dword [ebp + 0xc]
mov ecx, 0x420c6c
mov eax, 0x420c70
mov edi, ecx
test edx, 0x400
jne 0x402911
mov edi, eax
mov esi, ecx
test edx, 0x200
jne 0x40291d
mov esi, eax
test edx, 0x100
je 0x402927
mov eax, ecx
push dword [ebp + 0x18]
mov ecx, edx
push dword [ebp + 0x14]
shr ecx, 0xb
push dword [ebp + 0x10]
push ecx
push edi
push esi
push eax
movzx eax, dl
add eax, 0x18
push eax
push 0x41e800
push 1
call fcn.00405770
add esp, 0x28
test dword [ebp + 0x18], 0xfffffff8
je 0x402966
push 0x2e
push 0x41e7a0
push 1
call fcn.004058f0
test byte [ebp + 0x18], 7
jne 0x40297c
push 8
push 0x420e98
push 1
call fcn.004058f0
jmp 0x4029a4
mov esi, dword [ebp + 0x18]
bsf eax, esi
je 0x4029a4
push dword [eax*4 + 0x4120e0]
push 0x420e88
push 1
call fcn.00405770
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x402984
mov eax, dword [ebp + 4]
dec eax
and dword [ebp + 4], eax
bsf eax, dword [ebp + 4]
mov dword [ebp + 8], eax
jne 0x4028b9
jmp 0x403a99
push eax
push ecx
xor edi, edi
push 0x41e6a8
inc edi
push edi
call fcn.00405770
add esp, 0x10
test dword [ebp + 0x10], 0xffffffd1
je 0x4029e6
push 0x30
push 0x420eb0
push edi
call fcn.004058f0
test byte [ebp + 0x10], 0x2e
jne 0x4029fb
push 8
push 0x420e98
push edi
call fcn.004058f0
jmp 0x402a22
mov esi, dword [ebp + 0x10]
bsf eax, esi
je 0x402a22
push dword [eax*4 + 0x412160]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x402a03
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 0x41e660
push edi
call fcn.00405770
mov eax, dword [ebp + 0x10]
and eax, 0xfffffffe
add esp, 0x10
mov dword [ebp + 4], eax
bsf eax, eax
jmp 0x402c3d
mov ecx, dword [ebp + 8]
push 0x10
pop eax
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov eax, dword [ebp + 8]
dec eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
je 0x402ba6
dec eax
je 0x402b3b
dec eax
je 0x402adf
dec eax
dec eax
je 0x402a98
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push 0x41e4f0
push 1
call fcn.00405770
add esp, 0x1c
jmp 0x402c32
mov eax, dword [ebp + 0x14]
mov ecx, 0x420c6c
test al, 4
jne 0x402aa9
mov ecx, 0x420c70
movzx edx, word [ebp + 0x1a]
push edx
movzx edx, word [ebp + 0x18]
push edx
mov edx, eax
and eax, 3
shr edx, 3
push edx
push ecx
push eax
push dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
shr eax, 0xc
push eax
mov eax, dword [ebp + 0xc]
shr eax, 8
and eax, 0xf
push eax
movzx eax, byte [ebp + 0xc]
inc eax
push eax
push 0x41e280
jmp 0x402b2c
mov eax, dword [ebp + 0x14]
mov edx, 0x420c6c
test al, 4
jne 0x402af0
mov edx, 0x420c70
mov ecx, 0x420c6c
test al, 1
jne 0x402afe
mov ecx, 0x420c70
movzx esi, word [ebp + 0x1a]
push esi
movzx esi, word [ebp + 0x18]
push esi
mov esi, eax
shr esi, 3
push esi
push edx
and eax, 2
push eax
mov eax, dword [ebp + 0xc]
push ecx
push dword [ebp + 0x10]
mov ecx, eax
shr ecx, 0xc
and eax, 0xfff
push ecx
inc eax
push eax
push 0x41e008
push 1
call fcn.00405770
add esp, 0x2c
jmp 0x402c32
mov eax, dword [ebp + 0xc]
push dword [ebp + 0x10]
mov ecx, eax
shr ecx, 5
push ecx
and eax, 0x1f
inc eax
push eax
xor edi, edi
push 0x41dea8
inc edi
push edi
call fcn.00405770
add esp, 0x14
test dword [ebp + 0x14], 0xfffffff3
je 0x402b73
push 0x2d
push 0x41de48
push edi
call fcn.004058f0
test byte [ebp + 0x14], 0xc
je 0x402be4
mov esi, dword [ebp + 0x14]
bsf eax, esi
je 0x402c1a
push dword [eax*4 + 0x412268]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x402b85
jmp 0x402c1a
mov eax, dword [ebp + 0xc]
push dword [ebp + 0x10]
mov ecx, eax
shr ecx, 5
push ecx
and eax, 0x1f
inc eax
push eax
xor edi, edi
push 0x41dce8
inc edi
push edi
call fcn.00405770
add esp, 0x14
test dword [ebp + 0x14], 0xfffffff1
je 0x402bde
push 0x2d
push 0x41de48
push edi
call fcn.004058f0
test byte [ebp + 0x14], 0xe
jne 0x402bf3
push 8
push 0x420e98
push edi
call fcn.004058f0
jmp 0x402c1a
mov esi, dword [ebp + 0x14]
bsf eax, esi
je 0x402c1a
push dword [eax*4 + 0x4121e8]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x402bfb
movzx eax, word [ebp + 0x1a]
push eax
movzx eax, word [ebp + 0x18]
push eax
push 0x41dc70
push edi
call fcn.00405770
add esp, 0x10
mov eax, dword [ebp + 4]
dec eax
and dword [ebp + 4], eax
bsf eax, dword [ebp + 4]
mov dword [ebp + 8], eax
jne 0x402a47
jmp 0x403a99
push ecx
xor esi, esi
push 0x41db90
inc esi
push esi
call fcn.00405770
add esp, 0xc
test dword [ebp + 0xc], 0xfffff31c
je 0x402c73
push 0x3d
push 0x41db10
push esi
call fcn.004058f0
mov edi, dword [ebp + 0xc]
test edi, 0xce3
jne 0x402ca7
push 8
push 0x420e98
push esi
call fcn.004058f0
jmp 0x402cac
push dword [eax*4 + 0x4122f0]
push 0x420e88
push esi
call fcn.00405770
lea eax, [edi - 1]
add esp, 0xc
and edi, eax
bsf eax, edi
jne 0x402c8d
push dword [ebp + 0x10]
push 0x41dac8
push esi
call fcn.00405770
add esp, 0xc
test dword [ebp + 0x10], 0xfffffffc
je 0x402cd3
push 0x34
push 0x41da58
push esi
call fcn.004058f0
test byte [ebp + 0x10], 3
jne 0x402ce8
push 8
push 0x420e98
push esi
call fcn.004058f0
jmp 0x402d0f
mov edi, dword [ebp + 0x10]
bsf eax, edi
je 0x402d0f
push dword [eax*4 + 0x412370]
push 0x420e88
push esi
call fcn.00405770
lea eax, [edi - 1]
and edi, eax
add esp, 0xc
bsf eax, edi
jne 0x402cf0
movzx eax, word [ebp + 0x1a]
mov cl, byte [ebp + 0x19]
push eax
mov eax, esi
shl eax, cl
mov cl, byte [ebp + 0x18]
push eax
mov eax, esi
shl eax, cl
push eax
push dword [ebp + 0x14]
push 0x41d978
push esi
call fcn.00405770
add esp, 0x18
mov dword [ebp + 8], esi
mov ecx, dword [ebp + 8]
push 0x12
pop eax
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
test eax, eax
jne 0x402d6a
test ecx, ecx
jne 0x402d6a
cmp dword [ebp + 0x14], ecx
jne 0x402d6a
cmp dword [ebp + 0x18], ecx
je 0x402efe
mov edx, dword [ebp + 8]
dec edx
je 0x402e24
dec edx
jne 0x402d81
mov edx, eax
and dl, 0xf
cmp dl, 1
je 0x402da0
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push ecx
push eax
push dword [ebp + 8]
push 0x41d820
push 1
call fcn.00405770
add esp, 0x1c
jmp 0x402efe
mov edx, ecx
shr edx, 0x14
push edx
mov edi, 0xfffff
and ecx, edi
push ecx
mov ecx, eax
mov esi, 0xfffff000
and ecx, esi
push ecx
shr eax, 4
mov ebx, 0xff
and eax, ebx
push eax
push 0x41d6a8
push 1
call fcn.00405770
mov eax, dword [ebp + 0x14]
mov dword [ebp + 4], eax
add esp, 0x18
and dword [ebp + 4], 0xf
je 0x402e0c
cmp dword [ebp + 4], 3
ja 0x402e0c
mov ecx, dword [ebp + 0x18]
mov edx, ecx
shr edx, 0x14
push edx
and ecx, edi
push ecx
mov ecx, eax
and ecx, esi
shr eax, 4
push ecx
and eax, ebx
push eax
mov eax, dword [ebp + 4]
push dword [eax*4 + 0x4124f8]
push 0x41d5c0
jmp 0x402d91
push dword [ebp + 0x18]
push eax
push 0x41d570
push 1
call fcn.00405770
add esp, 0x10
jmp 0x402efe
push eax
xor ebx, ebx
push 0x41d498
inc ebx
push ebx
call fcn.00405770
add esp, 0xc
test dword [ebp + 0xc], 0xffffff08
je 0x402e4c
push 0x2c
push 0x41fa20
push ebx
call fcn.004058f0
test byte [ebp + 0xc], 0xf7
jne 0x402e61
push 8
push 0x420e98
push ebx
call fcn.004058f0
jmp 0x402e88
mov esi, dword [ebp + 0xc]
bsf eax, esi
je 0x402e88
push dword [eax*4 + 0x4123f8]
push 0x420e88
push ebx
call fcn.00405770
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x402e69
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x41d438
push ebx
call fcn.00405770
add esp, 0x10
test dword [ebp + 0x14], 0xfffffffe
je 0x402eb2
push 0x2c
push 0x41fa20
push ebx
call fcn.004058f0
test byte [ebp + 0x14], bl
jne 0x402ec6
push 8
push 0x420e98
push ebx
call fcn.004058f0
jmp 0x402eed
mov esi, dword [ebp + 0x14]
bsf eax, esi
je 0x402eed
push dword [eax*4 + 0x412478]
push 0x420e88
push ebx
call fcn.00405770
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x402ece
push dword [ebp + 0x18]
push 0x41d408
push ebx
call fcn.00405770
add esp, 0xc
inc dword [ebp + 8]
cmp dword [ebp + 8], 0x21
jb 0x402d38
jmp 0x403a99
push ebx
push eax
push ecx
xor edi, edi
push 0x41d318
inc edi
push edi
call fcn.00405770
add esp, 0x14
test dword [ebp + 0x10], 0xfffffc00
jne 0x402f36
test dword [ebp + 0x14], 0x7ffffff0
je 0x402f43
push 0x3d
push 0x41db10
push edi
call fcn.004058f0
mov esi, dword [ebp + 0x10]
mov ebx, 0x3ff
test ebx, esi
jne 0x402f81
test dword [ebp + 0x14], 0x8000000f
jne 0x402f81
push 8
push 0x420e98
push edi
call fcn.004058f0
jmp 0x402fc5
push dword [eax*4 + 0x412510]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x402f67
test dword [ebp + 0x10], ebx
je 0x402fa1
test dword [ebp + 0x14], 0x8000000f
je 0x402fa1
push 2
push 0x420e80
push edi
call fcn.004058f0
mov esi, dword [ebp + 0x14]
jmp 0x402fc0
push dword [eax*4 + 0x412590]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x402fa6
push dword [ebp + 0x18]
push 0x41d2f0
push edi
call fcn.00405770
mov eax, dword [ebp + 0xc]
add esp, 0xc
mov ebx, edi
mov dword [ebp + 4], eax
mov dword [ebp + 8], ebx
cmp eax, edi
jb 0x403a99
push 0x14
mov ecx, ebx
pop eax
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov ebx, dword [ebp + 8]
mov eax, ebx
dec eax
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
je 0x403027
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push ebx
push 0x41d1b0
push 1
call fcn.00405770
add esp, 0x1c
jmp 0x4030c6
push dword [ebp + 0x14]
movzx edx, word [ebp + 0x12]
movzx eax, byte [ebp + 0xd]
movzx ecx, byte [ebp + 0xc]
push edx
movzx edx, word [ebp + 0x10]
push edx
movzx edx, word [ebp + 0xe]
push edx
mov edx, eax
shr edx, 3
push edx
and eax, 7
push eax
mov eax, ecx
shr eax, 3
push eax
and ecx, 7
push ecx
xor edi, edi
push 0x41cf28
inc edi
push edi
call fcn.00405770
add esp, 0x28
test dword [ebp + 0x14], 0xffff7ffc
je 0x40307c
push 0x30
push 0x41cec0
push edi
call fcn.004058f0
mov esi, dword [ebp + 0x14]
test esi, 0x8003
jne 0x4030b0
push 8
push 0x420e98
push edi
call fcn.004058f0
jmp 0x4030b5
push dword [eax*4 + 0x412618]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x403096
push dword [ebp + 0x18]
push 0x41ce90
push edi
call fcn.00405770
add esp, 0xc
inc ebx
mov dword [ebp + 8], ebx
cmp ebx, dword [ebp + 4]
jbe 0x402fe9
jmp 0x403a99
mov eax, dword [ebp + 0x14]
mul dword [ebp + 0x10]
div dword [ebp + 0xc]
push dword [ebp + 0x18]
push eax
push dword [ebp + 0x14]
push dword [ebp + 0xc]
push dword [ebp + 0x10]
push 0x41cc70
jmp 0x403a8f
push edx
movzx edx, word [ebp + 0x16]
push edx
movzx edx, bx
push edx
movzx edx, word [ebp + 0x12]
push edx
movzx eax, ax
push eax
movzx eax, word [ebp + 0xe]
push eax
movzx eax, cx
push eax
push 0x41ca68
push 1
call fcn.00405770
add esp, 0x24
jmp 0x403a99
mov ebx, dword [ebp + 0x12]
mov esi, 0x420c6c
test bl, 1
jne 0x40313a
mov esi, 0x420c70
push edx
push dword [ebp + 0x14]
and ebx, 0xfffe
push ebx
push esi
movzx eax, ax
push eax
push ecx
xor edi, edi
push 0x41c8d8
inc edi
push edi
call fcn.00405770
mov eax, dword [ebp + 0xc]
add esp, 0x20
mov dword [ebp + 4], eax
mov dword [ebp + 8], edi
cmp eax, edi
jb 0x403a99
push 0x17
mov ecx, edi
mov edi, dword [ebp + 8]
pop eax
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov eax, edi
dec eax
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
je 0x4031fc
dec eax
je 0x4031db
dec eax
je 0x4031ae
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push edi
push 0x41c790
push 1
call fcn.00405770
add esp, 0x1c
jmp 0x403222
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0x3c], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp + 0x40], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x44], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp + 0x48], eax
lea eax, [ebp + 0x1c]
push eax
push 0x41c6e8
push 1
call fcn.00405770
add esp, 0xc
jmp 0x403222
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0x2c], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp + 0x30], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x34], eax
mov eax, dword [ebp + 0x18]
push 0x4a
mov dword [ebp + 0x38], eax
push 0x41c650
jmp 0x40321b
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0x1c], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp + 0x20], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x24], eax
mov eax, dword [ebp + 0x18]
push 0x4c
mov dword [ebp + 0x28], eax
push 0x41c5b0
push 1
call fcn.004058f0
inc edi
mov dword [ebp + 8], edi
cmp edi, dword [ebp + 4]
jbe 0x40316d
jmp 0x403a99
mov dword [ebp - 4], 0x420c6c
test edx, 0x100
jne 0x40324a
mov dword [ebp - 4], 0x420c70
mov dword [ebp - 8], 0x420c6c
test al, 8
jne 0x40325c
mov dword [ebp - 8], 0x420c70
mov dword [ebp - 0xc], 0x420c6c
test al, 4
jne 0x40326e
mov dword [ebp - 0xc], 0x420c70
mov dword [ebp - 0x14], 0x420c6c
test al, 2
jne 0x403280
mov dword [ebp - 0x14], 0x420c70
mov dword [ebp - 0x18], 0x420c6c
test al, 1
jne 0x403292
mov dword [ebp - 0x18], 0x420c70
mov edi, edx
shr edi, 0x1a
push edi
mov edi, edx
shr edi, 0xe
and edi, esi
mov esi, edx
shr esi, 9
and esi, 0x1f
inc edi
push edi
push esi
push dword [ebp - 4]
mov esi, edx
and edx, 0x1f
shr esi, 5
and esi, 7
push esi
push dword [edx*4 + 0x413798]
movzx edx, word [ebp + 0x12]
push ebx
push edx
mov edx, eax
shr edx, 0xb
and edx, 0x1f
push edx
mov edx, eax
shr edx, 8
and edx, 7
push edx
shr eax, 4
and eax, 0xf
push eax
push dword [ebp - 8]
xor esi, esi
push dword [ebp - 0xc]
inc esi
push dword [ebp - 0x14]
push dword [ebp - 0x18]
push ecx
push 0x41c1d0
push esi
call fcn.00405770
mov eax, dword [ebp + 0xc]
add esp, 0x48
mov dword [ebp + 4], eax
mov dword [ebp + 8], esi
cmp eax, esi
jb 0x403a99
mov ecx, dword [ebp + 8]
push 0x18
pop eax
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
cmp dword [ebp + 0xc], 0
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x10]
jne 0x403341
test ecx, ecx
jne 0x403341
cmp dword [ebp + 0x14], ecx
jne 0x403341
test eax, eax
je 0x4033ea
mov esi, 0x420c6c
mov edx, 0x420c70
mov dword [ebp - 4], esi
test eax, 0x100
jne 0x403358
mov dword [ebp - 4], edx
mov dword [ebp - 8], esi
test cl, 8
jne 0x403363
mov dword [ebp - 8], edx
mov ebx, esi
test cl, 4
jne 0x40336c
mov ebx, edx
mov edi, esi
test cl, 2
jne 0x403375
mov edi, edx
test cl, 1
je 0x40337c
mov edx, esi
mov esi, eax
shr esi, 0x1a
push esi
mov esi, eax
shr esi, 0xe
and esi, 0xfff
inc esi
push esi
mov esi, eax
shr esi, 9
and esi, 0x1f
push esi
push dword [ebp - 4]
mov esi, eax
and eax, 0x1f
shr esi, 5
and esi, 7
push esi
push dword [eax*4 + 0x413798]
movzx eax, word [ebp + 0x12]
push dword [ebp + 0x14]
push eax
mov eax, ecx
shr eax, 0xb
and eax, 0x1f
push eax
mov eax, ecx
shr eax, 8
and eax, 7
push eax
shr ecx, 4
and ecx, 0xf
push ecx
push dword [ebp - 8]
push ebx
push edi
push edx
push dword [ebp + 0xc]
push dword [ebp + 8]
push 0x41be08
push 1
call fcn.00405770
add esp, 0x4c
inc dword [ebp + 8]
mov eax, dword [ebp + 8]
cmp eax, dword [ebp + 4]
jbe 0x40330e
jmp 0x403a99
mov edx, 0x420c6c
mov esi, 0x420c70
mov dword [ebp - 4], edx
test cl, 4
jne 0x403413
mov dword [ebp - 4], esi
mov edi, edx
test cl, 2
jne 0x40341c
mov edi, esi
test cl, 1
jne 0x403423
mov edx, esi
push ebx
push eax
shr ecx, 3
push ecx
push dword [ebp - 4]
push edi
push edx
xor edi, edi
push 0x41bc28
inc edi
push edi
call fcn.00405770
add esp, 0x20
test dword [ebp + 0x10], 0xffffffea
jne 0x403451
test dword [ebp + 0x14], 0xfffffffc
je 0x40345e
push 0x30
push 0x420eb0
push edi
call fcn.004058f0
test byte [ebp + 0x10], 0x15
jne 0x40347c
test byte [ebp + 0x14], 3
jne 0x40347c
push 8
push 0x420e98
push edi
call fcn.004058f0
jmp 0x403a99
mov esi, dword [ebp + 0x10]
bsf eax, esi
je 0x4034a3
push dword [eax*4 + 0x412698]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x403484
test byte [ebp + 0x10], 0x15
je 0x4034bc
test byte [ebp + 0x14], 3
je 0x4034bc
push 2
push 0x420e80
push edi
call fcn.004058f0
mov esi, dword [ebp + 0x14]
jmp 0x4034dc
push dword [eax*4 + 0x412720]
push 0x420e88
push 1
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x4034c1
jmp 0x403a99
push edx
push ebx
push eax
movzx eax, byte [ebp + 0xf]
push eax
and ecx, 0xffffff
push ecx
push 0x41bab8
jmp 0x403a8f
and dword [ebp + 8], 0
mov eax, ecx
and eax, esi
je 0x403a99
push 2
pop edi
jmp 0x403515
mov edi, dword [ebp - 4]
shr ecx, 0xc
push ecx
push eax
push dword [ebp + 8]
xor ebx, ebx
push 0x41b9e8
inc ebx
push ebx
call fcn.00405770
mov eax, dword [ebp + 0xc]
add esp, 0x14
push dword [ebp + 0x18]
and eax, esi
cmp eax, ebx
jne 0x403559
lea eax, [edi + 1]
push eax
push dword [ebp + 0x14]
lea eax, [edi - 1]
push edi
push dword [ebp + 0x10]
push eax
push 0x41b938
push ebx
call fcn.00405770
add esp, 0x20
jmp 0x40356d
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x41b8c8
push ebx
call fcn.00405770
add esp, 0x14
inc dword [ebp + 8]
mov ecx, dword [ebp + 8]
push 0x1b
pop eax
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov ecx, dword [ebp + 0xc]
add edi, 3
mov eax, ecx
mov esi, 0xfff
and eax, esi
mov dword [ebp - 4], edi
jne 0x403512
jmp 0x403a99
mov esi, 0x420c6c
mov dword [ebp - 4], esi
test bl, 4
jne 0x4035b7
mov dword [ebp - 4], 0x420c70
mov dword [ebp - 8], esi
test bl, 2
jne 0x4035c6
mov dword [ebp - 8], 0x420c70
mov dword [ebp - 0xc], esi
test bl, 1
jne 0x4035d5
mov dword [ebp - 0xc], 0x420c70
mov dword [ebp - 0x14], esi
test al, 4
jne 0x4035e3
mov dword [ebp - 0x14], 0x420c70
mov dword [ebp - 0x18], esi
test al, 2
jne 0x4035f1
mov dword [ebp - 0x18], 0x420c70
mov dword [ebp + 4], esi
test al, 1
jne 0x4035ff
mov dword [ebp + 4], 0x420c70
mov edi, esi
test ecx, ecx
js 0x40360a
mov edi, 0x420c70
test ecx, 0x40000000
jne 0x403617
mov esi, 0x420c70
push edx
mov edx, ebx
shr edx, 0x14
push edx
mov edx, ebx
shr edx, 0x10
and edx, 0xf
push edx
shr ebx, 3
and ebx, 0x1fff
push ebx
push dword [ebp - 4]
shr eax, 3
push dword [ebp - 8]
push dword [ebp - 0xc]
push eax
push dword [ebp - 0x14]
mov eax, ecx
push dword [ebp - 0x18]
shr eax, 8
push dword [ebp + 4]
and eax, 0x3fffff
push edi
push esi
push eax
movzx eax, cl
push eax
push 0x41b4e0
push 1
call fcn.00405770
add esp, 0x44
jmp 0x403a99
push edx
push ebx
push eax
push ecx
xor edi, edi
push 0x41b3c8
inc edi
push edi
call fcn.00405770
mov eax, dword [ebp + 0xc]
add esp, 0x18
mov dword [ebp + 4], eax
mov dword [ebp + 8], edi
cmp eax, edi
jb 0x403a99
push 0x1d
pop eax
mov ecx, edi
mov edi, dword [ebp + 8]
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov eax, edi
dec eax
mov dword [esi + 0xc], edx
push dword [ebp + 0x18]
je 0x4036ce
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push edi
push edi
push 0x41b268
push 1
call fcn.00405770
add esp, 0x20
jmp 0x4036fb
movzx eax, word [ebp + 0x16]
push eax
movzx eax, word [ebp + 0x14]
push eax
movzx eax, word [ebp + 0x12]
push eax
movzx eax, word [ebp + 0x10]
push eax
movzx eax, word [ebp + 0xe]
push eax
movzx eax, word [ebp + 0xc]
push eax
push 0x41b0a8
push 1
call fcn.00405770
add esp, 0x24
inc edi
mov dword [ebp + 8], edi
cmp edi, dword [ebp + 4]
jbe 0x403692
jmp 0x403a99
push edx
movzx edx, byte [ebp + 0x13]
push ebx
push edx
mov edx, eax
shr edx, 8
and edx, 0xffff
push edx
movzx eax, al
push eax
push ecx
push 0x41af40
push 1
jmp 0x402453
and dword [ebp + 8], 0
test bh, bh
je 0x403a99
jmp 0x403744
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
push edx
movzx edx, word [ebp + 0x16]
push edx
movzx edx, bh
push edx
movzx edx, bl
push edx
movzx edx, word [ebp + 0x12]
movzx eax, ax
push edx
push eax
mov eax, ecx
shr eax, 5
push eax
xor eax, eax
and ecx, 0x1f
inc eax
shl eax, cl
push eax
push dword [ebp + 8]
push 0x41ad18
push 1
call fcn.00405770
add esp, 0x2c
inc dword [ebp + 8]
mov ecx, dword [ebp + 8]
push 0x1f
pop eax
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov ebx, dword [ebp + 0x14]
test bh, bh
jne 0x40373b
jmp 0x403a99
push edx
push ebx
push eax
push ecx
xor esi, esi
push 0x41abe0
inc esi
push esi
call fcn.00405770
mov eax, dword [ebp + 0xc]
add esp, 0x18
mov dword [ebp + 4], eax
mov dword [ebp + 8], esi
cmp eax, esi
jb 0x403a99
mov ecx, dword [ebp + 8]
push 0x20
pop eax
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
xor eax, eax
mov dword [esi + 0xc], edx
cmp dword [ebp + 0xc], eax
jne 0x4037f3
cmp dword [ebp + 0x10], eax
jne 0x4037f3
cmp dword [ebp + 0x14], eax
jne 0x4037f3
cmp dword [ebp + 0x18], eax
je 0x403811
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push 0x41aa90
push 1
call fcn.00405770
add esp, 0x1c
inc dword [ebp + 8]
mov eax, dword [ebp + 8]
cmp eax, dword [ebp + 4]
jbe 0x4037c7
jmp 0x403a99
push eax
push ecx
xor edi, edi
push 0x41a978
inc edi
push edi
call fcn.00405770
add esp, 0x10
test dword [ebp + 0x10], 0xfffffffc
je 0x40384a
push 0x2e
push 0x41e7a0
push edi
call fcn.004058f0
test byte [ebp + 0x10], 3
jne 0x40385f
push 8
push 0x420e98
push edi
call fcn.004058f0
jmp 0x403886
mov esi, dword [ebp + 0x10]
bsf eax, esi
je 0x403886
push dword [eax*4 + 0x4127a0]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x403867
push dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
shr eax, 8
push eax
movzx eax, byte [ebp + 0x14]
push eax
push 0x41a908
push edi
call fcn.00405770
mov eax, dword [ebp + 0xc]
and eax, 0xfffffffe
add esp, 0x14
mov dword [ebp + 4], eax
bsf eax, eax
jmp 0x4039bc
mov ecx, dword [ebp + 8]
push 0x23
pop eax
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
test eax, eax
jne 0x4038ea
test esi, esi
jne 0x4038ea
test edx, edx
jne 0x4038ea
test ecx, ecx
je 0x4039b1
mov edi, dword [ebp + 8]
dec edi
je 0x40399e
dec edi
je 0x403993
dec edi
je 0x403919
push ecx
push edx
push esi
push eax
push dword [ebp + 8]
push 0x41a788
push 1
call fcn.00405770
add esp, 0x1c
jmp 0x4039b1
push eax
xor edi, edi
push 0x41a6a8
inc edi
push edi
call fcn.00405770
add esp, 0xc
test dword [ebp + 0xc], 0xffffe000
je 0x403941
push 0x2e
push 0x41e7a0
push edi
call fcn.004058f0
mov esi, dword [ebp + 0xc]
test esi, 0x1fff
jne 0x403975
push 8
push 0x420e98
push edi
call fcn.004058f0
jmp 0x40397a
push dword [eax*4 + 0x412828]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x40395b
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x41a640
push edi
call fcn.00405770
add esp, 0x14
jmp 0x4039b1
push ecx
push edx
push esi
push eax
push 0x41a458
jmp 0x4039a7
push ecx
push edx
push esi
push eax
push 0x41a288
push 1
call fcn.00405770
add esp, 0x18
mov eax, dword [ebp + 4]
dec eax
and dword [ebp + 4], eax
bsf eax, dword [ebp + 4]
mov dword [ebp + 8], eax
jne 0x4038b4
jmp 0x403a99
mov esi, 0x420c6c
mov dword [ebp - 4], esi
test eax, 0x40000
jne 0x4039e0
mov dword [ebp - 4], 0x420c70
mov edi, esi
test eax, 0x20000
jne 0x4039ee
mov edi, 0x420c70
test eax, 0x10000
jne 0x4039fa
mov esi, 0x420c70
push edx
push ebx
mov edx, eax
shr edx, 0x13
push edx
push dword [ebp - 4]
movzx edx, ah
push edi
push esi
push edx
movzx eax, al
push eax
push ecx
xor esi, esi
push 0x41a040
inc esi
push esi
call fcn.00405770
mov eax, dword [ebp + 0xc]
add esp, 0x2c
mov dword [ebp + 4], eax
mov dword [ebp + 8], esi
cmp eax, esi
jb 0x403a99
mov ecx, dword [ebp + 8]
push 0x24
pop eax
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
xor eax, eax
mov dword [esi + 0xc], edx
cmp dword [ebp + 0xc], eax
jne 0x403a5a
cmp dword [ebp + 0x10], eax
jne 0x403a5a
cmp dword [ebp + 0x14], eax
jne 0x403a5a
cmp dword [ebp + 0x18], eax
je 0x403a78
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push 0x419ef0
push 1
call fcn.00405770
add esp, 0x1c
inc dword [ebp + 8]
mov eax, dword [ebp + 8]
cmp eax, dword [ebp + 4]
jbe 0x403a2e
jmp 0x403a99
push edx
push ebx
push eax
push ecx
push edi
push 0x419de0
push 1
call fcn.00405770
add esp, 0x1c
inc dword [ebp]
mov eax, dword [ebp]
xor ecx, ecx
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov eax, dword [ebp - 0x10]
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
cmp dword [ebp], eax
jbe 0x4019f5
xor ecx, ecx
cpuid
lea esi, [ebp + 0x4c]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov eax, 0x40000000
xor ecx, ecx
mov dword [ebp], eax
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x18]
mov esi, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
cmp eax, dword [ebp + 0x4c]
jne 0x403b0d
cmp edx, dword [ebp + 0x50]
jne 0x403b0d
cmp esi, dword [ebp + 0x54]
jne 0x403b0d
cmp ecx, dword [ebp + 0x58]
je 0x40411d
mov dword [ebp - 0x10], eax
cmp eax, 0x40000000
jb 0x40411d
jmp 0x403b29
mov ecx, dword [ebp + 0x18]
mov esi, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov edi, 0x420eb0
test eax, eax
jne 0x403b42
test edx, edx
jne 0x403b42
test esi, esi
jne 0x403b42
test ecx, ecx
je 0x4040f9
mov ebx, dword [ebp]
add ebx, 0xc0000000
cmp ebx, 0x10
ja case.0x403b54.1073741835
jmp dword [ebx*4 + 0x405539]
lea ecx, [ebp + 0x10]
push ecx
push eax
push 0x419ca8
push 1
call fcn.00405770
add esp, 0x10
jmp 0x4040f9
push ecx
push esi
push edx
push eax
push 0x419b70
push 1
call fcn.00405770
add esp, 0x18
jmp 0x4040f9
and ecx, 0xffffff
push ecx
movzx ecx, byte [ebp + 0x1b]
push ecx
push esi
push eax
movzx eax, dx
push eax
movzx eax, word [ebp + 0x12]
push eax
push 0x419a28
push 1
call fcn.00405770
add esp, 0x20
jmp 0x4040f9
push edx
push eax
xor ebx, ebx
push 0x419948
inc ebx
push ebx
call fcn.00405770
add esp, 0x10
test dword [ebp + 0xc], 0xffffc000
jne 0x403bdc
test dword [ebp + 0x10], 0xffc44600
je 0x403be9
push 0x32
push 0x4198e0
push ebx
call fcn.004058f0
mov esi, dword [ebp + 0xc]
test esi, 0x3fff
jne 0x403c26
test dword [ebp + 0x10], 0x3bb9ff
jne 0x403c26
push 8
push 0x420e98
push ebx
call fcn.004058f0
jmp 0x403c6e
push dword [eax*4 + 0x4128a8]
push 0x420e88
push ebx
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x403c0c
test dword [ebp + 0xc], 0x3fff
je 0x403c4a
test dword [ebp + 0x10], 0x3bb9ff
je 0x403c4a
push 2
push 0x420e80
push ebx
call fcn.004058f0
mov esi, dword [ebp + 0x10]
jmp 0x403c69
push dword [eax*4 + 0x412930]
push 0x420e88
push ebx
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x403c4f
mov eax, dword [ebp + 0x14]
mov ecx, 0x420c6c
test al, 0x10
jne 0x403c7f
mov ecx, 0x420c70
push dword [ebp + 0x18]
mov edx, eax
shr edx, 5
push edx
push ecx
and eax, 3
push eax
push 0x4197d0
push ebx
call fcn.00405770
add esp, 0x18
test dword [ebp + 0x18], 0xfb400000
je 0x403cad
push 0x30
push edi
push ebx
call fcn.004058f0
mov esi, dword [ebp + 0x18]
test esi, 0x4bfffff
jne 0x403ce5
push 8
push 0x420e98
push ebx
call fcn.004058f0
jmp 0x4040f9
push dword [eax*4 + 0x412a38]
push 0x420e88
push 1
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x403cca
jmp 0x4040f9
push eax
xor edi, edi
push 0x4196e0
inc edi
push edi
call fcn.00405770
add esp, 0xc
test dword [ebp + 0xc], 0xfff90000
je 0x403d17
push 0x37
push 0x419670
push edi
call fcn.004058f0
mov esi, dword [ebp + 0xc]
test esi, 0x6ffff
jne 0x403d4b
push 8
push 0x420e98
push edi
call fcn.004058f0
jmp 0x403d50
push dword [eax*4 + 0x412ab8]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x403d31
push dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
mov ecx, eax
shr ecx, 7
push ecx
and eax, 0x7f
push eax
push dword [ebp + 0x10]
push 0x4195b0
push edi
jmp 0x403b7f
push ecx
push esi
push edx
push eax
push 0x4193f8
jmp 0x403b7d
push eax
xor ebx, ebx
push 0x419330
inc ebx
push ebx
call fcn.00405770
add esp, 0xc
test dword [ebp + 0xc], 0xfe00bc00
je 0x403da0
push 0x30
push edi
push ebx
call fcn.004058f0
mov esi, dword [ebp + 0xc]
test esi, 0x1ff43ff
jne 0x403dd4
push 8
push 0x420e98
push ebx
call fcn.004058f0
jmp 0x403dd9
push dword [eax*4 + 0x412b40]
push 0x420e88
push ebx
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x403dba
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x41a640
push ebx
call fcn.00405770
add esp, 0x14
jmp 0x4040f9
push esi
push edx
push eax
xor ebx, ebx
push 0x419258
inc ebx
push ebx
call fcn.00405770
add esp, 0x14
test dword [ebp + 0xc], 0x7ffffff8
jne 0x403e24
test dword [ebp + 0x10], 0xfffffff8
jne 0x403e24
test dword [ebp + 0x14], 0xfffffffe
je 0x403e2d
push 0x30
push edi
push ebx
call fcn.004058f0
mov esi, dword [ebp + 0xc]
test esi, 0x80000007
jne 0x403e55
test byte [ebp + 0x10], 7
jne 0x403e55
test byte [ebp + 0x14], bl
jne 0x403e55
push 8
push 0x420e98
push ebx
call fcn.004058f0
jmp 0x403ef4
mov edi, 0x420e88
bsf eax, esi
je 0x403e77
push dword [eax*4 + 0x412bc0]
push edi
push ebx
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
jmp 0x403e5a
test dword [ebp + 0xc], 0x80000007
je 0x403e93
test byte [ebp + 0x10], 7
je 0x403e93
push 2
push 0x420e80
push ebx
call fcn.004058f0
mov esi, dword [ebp + 0x10]
jmp 0x403eae
push dword [eax*4 + 0x412c48]
push edi
push ebx
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x403e98
test dword [ebp + 0xc], 0x80000007
jne 0x403ec2
test byte [ebp + 0x10], 7
je 0x403ed4
test byte [ebp + 0x14], bl
je 0x403ed4
push 2
push 0x420e80
push ebx
call fcn.004058f0
mov esi, dword [ebp + 0x14]
jmp 0x403eef
push dword [eax*4 + 0x412cc8]
push edi
push ebx
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x403ed9
push dword [ebp + 0x18]
push 0x419230
push ebx
call fcn.00405770
add esp, 0xc
jmp 0x4040f9
mov edi, 0x420c6c
test al, 1
jne 0x403f18
mov edi, 0x420c70
push ecx
push esi
mov ecx, eax
push edx
shr ecx, 0xb
push ecx
shr eax, 1
and eax, 0x3ff
push eax
push edi
push 0x419058
jmp 0x403ba8
push eax
xor ebx, ebx
push 0x418f90
inc ebx
push ebx
call fcn.00405770
add esp, 0xc
test dword [ebp + 0xc], 0xffffef8b
je 0x403f58
push 0x30
push edi
push ebx
call fcn.004058f0
mov esi, dword [ebp + 0xc]
test esi, 0x1074
jne 0x403f8c
push 8
push 0x420e98
push ebx
call fcn.004058f0
jmp 0x403f91
push dword [eax*4 + 0x412d50]
push 0x420e88
push ebx
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x403f72
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x418f08
push ebx
call fcn.00405770
add esp, 0x14
test dword [ebp + 0x18], 0xfffd7fef
je 0x403fba
push 0x30
push edi
push ebx
call fcn.004058f0
mov esi, dword [ebp + 0x18]
test esi, 0x28010
je 0x403cb8
jmp 0x403fe6
push dword [eax*4 + 0x412dd0]
push 0x420e88
push 1
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x403fcb
jmp 0x4040f9
movzx ecx, word [ebp + 0xe]
push ecx
movzx ecx, al
push ecx
movzx eax, ah
push eax
xor ebx, ebx
push 0x418e00
inc ebx
push ebx
call fcn.00405770
mov eax, dword [ebp + 0xc]
add esp, 0x14
test eax, 0xffa1ffff
je 0x404024
push 0x30
push edi
push ebx
call fcn.004058f0
mov eax, dword [ebp + 0xc]
test eax, 0x5e0000
jne 0x40403a
push 8
push 0x420e98
push ebx
call fcn.004058f0
jmp 0x404065
and eax, 0xffff0000
mov esi, eax
bsf eax, eax
je 0x404065
push dword [eax*4 + 0x412e58]
push 0x420e88
push ebx
call fcn.00405770
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x404046
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x418d88
jmp 0x403de7
push eax
xor ebx, ebx
push 0x418ce8
inc ebx
push ebx
call fcn.00405770
add esp, 0xc
test dword [ebp + 0xc], 0xfffffffe
je 0x40409c
push 0x30
push edi
push ebx
call fcn.004058f0
test byte [ebp + 0xc], bl
je 0x403dab
mov esi, dword [ebp + 0xc]
bsf eax, esi
je 0x403dd9
push dword [eax*4 + 0x412ed8]
push 0x420e88
push ebx
call fcn.00405770
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x4040b1
jmp 0x403dd9
push ecx
push esi
push edx
push eax
push 0x418b60
jmp 0x403b7d
push ecx
push esi
push edx
push eax
push dword [ebp]
push 0x418a40
push 1
call fcn.00405770
add esp, 0x1c
inc dword [ebp]
mov eax, dword [ebp]
xor ecx, ecx
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov eax, dword [ebp]
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
cmp eax, dword [ebp - 0x10]
jbe 0x403b1d
mov eax, 0x40000080
xor ecx, ecx
mov dword [ebp], eax
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov eax, dword [ebp + 0xc]
cmp eax, dword [ebp + 0x4c]
jne 0x404157
mov ecx, dword [ebp + 0x10]
cmp ecx, dword [ebp + 0x50]
jne 0x404157
mov ecx, dword [ebp + 0x14]
cmp ecx, dword [ebp + 0x54]
jne 0x404157
mov ecx, dword [ebp + 0x18]
cmp ecx, dword [ebp + 0x58]
je 0x4041b7
mov dword [ebp - 0x10], eax
cmp eax, 0x40000080
jb 0x4041b7
jmp 0x404166
mov eax, dword [ebp + 0xc]
xor ecx, ecx
cmp eax, ecx
jne 0x40417b
cmp dword [ebp + 0x10], ecx
jne 0x40417b
cmp dword [ebp + 0x14], ecx
jne 0x40417b
cmp dword [ebp + 0x18], ecx
je 0x404197
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push eax
push dword [ebp]
push 0x418950
push 1
call fcn.00405770
add esp, 0x1c
inc dword [ebp]
mov eax, dword [ebp]
xor ecx, ecx
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov eax, dword [ebp]
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
cmp eax, dword [ebp - 0x10]
jbe 0x404163
mov eax, 0x80000000
xor ecx, ecx
mov dword [ebp], eax
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
cmp eax, dword [ebp + 0x4c]
jne 0x4041fa
cmp ecx, dword [ebp + 0x50]
jne 0x4041fa
mov esi, dword [ebp + 0x54]
cmp ebx, esi
jne 0x4041f7
cmp edx, dword [ebp + 0x58]
je 0x405293
mov ebx, dword [ebp + 0x14]
mov dword [ebp - 0x10], eax
cmp eax, 0x80000000
jb 0x405293
jmp 0x404216
mov edx, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
cmp dword [ebp], 0x80000004
mov edi, 0xfff
jbe 0x40423b
test eax, eax
jne 0x40423b
test ecx, ecx
jne 0x40423b
test ebx, ebx
jne 0x404238
test edx, edx
je 0x40526f
mov ebx, dword [ebp + 0x14]
mov esi, dword [ebp]
add esi, 0x80000000
cmp esi, 0x26
ja case.0x404254.2147483639
movzx esi, byte [esi + 0x4055d9]
jmp dword [esi*4 + 0x40557d]
push eax
push 0x418868
push 1
call fcn.00405770
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
add esp, 0xc
test eax, eax
jne 0x40428c
test edx, edx
jne 0x40428c
test ecx, ecx
jne 0x40428c
push 0x30
push 0x418800
jmp 0x4044d8
mov dword [ebp + 0x5c], eax
lea eax, [ebp + 0x5c]
push eax
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x64], edx
push 0x4187b8
push 1
call fcn.00405770
add esp, 0xc
jmp 0x40526f
push eax
push 0x4186f0
push 1
call fcn.00405770
mov esi, dword [ebp + 0xc]
add esp, 0xc
test esi, esi
jne 0x4042d7
push 0x13
push 0x4186c4
push 1
call fcn.004058f0
jmp 0x4043bb
cmp dword [ebp + 0x5c], 0x756e6547
jne 0x404349
cmp dword [ebp + 0x60], 0x49656e69
jne 0x4043fb
cmp dword [ebp + 0x64], 0x6c65746e
jne 0x4043fb
mov ebx, esi
push esi
shr ebx, 8
call section..code
push eax
mov eax, esi
and eax, 0xf
push eax
mov ecx, esi
mov eax, ebx
and eax, 0xf00
and ecx, 0xf0
or eax, ecx
shr eax, 4
push eax
mov eax, esi
shr eax, 0x14
and eax, 0xff
and ebx, 0xf
add eax, ebx
push eax
shr esi, 0xc
and esi, 3
push esi
push 0x4210d8
push 1
call fcn.00405770
add esp, 0x1c
jmp 0x4043bb
cmp dword [ebp + 0x5c], 0x68747541
jne 0x4043fb
cmp dword [ebp + 0x60], 0x69746e65
jne 0x4043fb
cmp dword [ebp + 0x64], 0x444d4163
jne 0x4043fb
push 0xf
pop eax
mov ecx, esi
mov edx, esi
shr ecx, 8
shr edx, 4
mov ebx, esi
and ecx, eax
and ebx, eax
and edx, eax
cmp ecx, eax
jne 0x4043a1
mov ecx, esi
shr ecx, 0x14
shr esi, 0xc
and ecx, 0xff
and esi, 0xf0
add ecx, eax
or edx, esi
push edx
push ecx
call fcn.00401611
push eax
push ebx
push edx
push ecx
push 0x421048
push 1
call fcn.00405770
add esp, 0x18
cmp dword [ebp + 0x5c], 0x68747541
jne 0x4043fb
cmp dword [ebp + 0x60], 0x69746e65
jne 0x4043fb
cmp dword [ebp + 0x64], 0x444d4163
jne 0x4043fb
mov eax, dword [ebp + 0x10]
shr eax, 0x1c
push eax
mov eax, dword [ebp + 0x12]
and eax, edi
push eax
movzx eax, word [ebp + 0x10]
push eax
xor ebx, ebx
push 0x418650
inc ebx
push ebx
call fcn.00405770
add esp, 0x14
jmp 0x40440f
push dword [ebp + 0x10]
xor ebx, ebx
push 0x41d2f0
inc ebx
push ebx
call fcn.00405770
add esp, 0xc
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 0x418614
push ebx
call fcn.00405770
add esp, 0x10
test dword [ebp + 0x14], 0x80144000
jne 0x404435
test dword [ebp + 0x18], 0x10240400
je 0x404442
push 0x30
push 0x420eb0
push ebx
call fcn.004058f0
mov esi, dword [ebp + 0x14]
mov edi, 0x7febbfff
test edi, esi
jne 0x40447b
test dword [ebp + 0x18], 0xefdbfbff
jne 0x40447b
push 8
push 0x420e98
push ebx
jmp 0x4044da
push dword [eax*4 + 0x412f60]
push 0x420e88
push ebx
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x404461
test dword [ebp + 0x14], edi
je 0x40449b
test dword [ebp + 0x18], 0xefdbfbff
je 0x40449b
push 2
push 0x420e80
push ebx
call fcn.004058f0
mov esi, dword [ebp + 0x18]
jmp 0x4044bb
push dword [eax*4 + 0x412fe0]
push 0x420e88
push 1
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x4044a0
jmp 0x40526f
push 0x40
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x20], ecx
mov dword [ebp + 0x24], ebx
mov dword [ebp + 0x28], edx
push 0x418590
push 1
call fcn.004058f0
jmp 0x40526f
push 0x3e
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x30], ecx
mov dword [ebp + 0x34], ebx
mov dword [ebp + 0x38], edx
push 0x418510
jmp 0x4044d8
mov dword [ebp + 0x3c], eax
lea eax, [ebp + 0x1c]
push eax
mov dword [ebp + 0x40], ecx
mov dword [ebp + 0x44], ebx
mov dword [ebp + 0x48], edx
push 0x418480
jmp 0x40429e
push 0x59
push 0x4183c8
push 1
call fcn.004058f0
cmp dword [ebp + 0x5c], 0x68747541
jne 0x4045a0
cmp dword [ebp + 0x60], 0x69746e65
jne 0x4045a0
cmp dword [ebp + 0x64], 0x444d4163
jne 0x4045a0
movzx eax, byte [ebp + 0x1b]
push eax
movzx eax, byte [ebp + 0x1a]
push eax
movzx eax, byte [ebp + 0x19]
push eax
movzx eax, byte [ebp + 0x18]
push eax
movzx eax, byte [ebp + 0x17]
push eax
movzx eax, byte [ebp + 0x16]
push eax
movzx eax, byte [ebp + 0x15]
push eax
movzx eax, byte [ebp + 0x14]
push eax
movzx eax, byte [ebp + 0x13]
push eax
movzx eax, byte [ebp + 0x12]
push eax
movzx eax, byte [ebp + 0x11]
push eax
movzx eax, byte [ebp + 0x10]
push eax
movzx eax, byte [ebp + 0xf]
push eax
movzx eax, byte [ebp + 0xe]
push eax
movzx eax, byte [ebp + 0xd]
push eax
movzx eax, byte [ebp + 0xc]
push eax
push 0x417d70
push 1
call fcn.00405770
add esp, 0x48
jmp 0x40526f
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push 0x417ce0
push 1
call fcn.00405770
add esp, 0x18
jmp 0x40526f
push 0x59
xor esi, esi
push 0x417c28
inc esi
push esi
call fcn.004058f0
cmp dword [ebp + 0x5c], 0x756e6547
jne 0x404629
cmp dword [ebp + 0x60], 0x49656e69
jne 0x4046f2
cmp dword [ebp + 0x64], 0x6c65746e
jne 0x4046f2
push dword [ebp + 0x18]
movzx eax, word [ebp + 0x16]
push eax
mov eax, dword [ebp + 0x14]
shr eax, 0xc
and eax, 0xf
push dword [eax*4 + 0x413818]
movzx eax, byte [ebp + 0x15]
and eax, 0xf
push eax
movzx eax, byte [ebp + 0x14]
push eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push 0x417ae8
push esi
jmp 0x4048f9
cmp dword [ebp + 0x5c], 0x68747541
jne 0x4046f2
cmp dword [ebp + 0x60], 0x69746e65
jne 0x4046f2
cmp dword [ebp + 0x64], 0x444d4163
jne 0x4046f2
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
shr edx, 0x12
push 0xf
pop ecx
shl edx, 9
push edx
movzx edx, byte [ebp + 0x1a]
and edx, 3
push edx
movzx edx, byte [ebp + 0x19]
and edx, ecx
shr eax, 0xc
and eax, ecx
mov eax, dword [eax*4 + 0x413818]
push eax
push edx
movzx edx, byte [ebp + 0x18]
push edx
movzx edx, word [ebp + 0x16]
push edx
push eax
movzx eax, byte [ebp + 0x15]
and eax, ecx
push eax
movzx eax, byte [ebp + 0x14]
push eax
mov eax, dword [ebp + 0x10]
mov edx, eax
shr edx, 0x1c
push dword [edx*4 + 0x413818]
mov edx, dword [ebp + 0x12]
and edx, edi
push edx
mov edx, eax
shr edx, 0xc
and edx, ecx
push dword [edx*4 + 0x413818]
and eax, edi
push eax
mov eax, dword [ebp + 0xc]
mov edx, eax
shr edx, 0x1c
push dword [edx*4 + 0x413818]
mov edx, dword [ebp + 0xe]
and edx, edi
push edx
mov edx, eax
shr edx, 0xc
and edx, ecx
push dword [edx*4 + 0x413818]
and eax, edi
push eax
push 0x417580
push esi
call fcn.00405770
add esp, 0x4c
jmp 0x40526f
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push 0x417ce0
push esi
jmp 0x4045b3
push 0x4b
xor edi, edi
push 0x4174e8
inc edi
push edi
call fcn.004058f0
cmp dword [ebp + 0x5c], 0x68747541
jne 0x4047c5
cmp dword [ebp + 0x60], 0x69746e65
jne 0x4047c5
cmp dword [ebp + 0x64], 0x444d4163
jne 0x4047c5
push dword [ebp + 0x10]
movzx eax, word [ebp + 0xe]
push eax
movzx eax, byte [ebp + 0xd]
push eax
movzx eax, byte [ebp + 0xc]
push eax
push 0x417408
push edi
call fcn.00405770
add esp, 0x18
test dword [ebp + 0x10], 0xffffffc0
je 0x404776
push 0x3d
push 0x41db10
push edi
call fcn.004058f0
test byte [ebp + 0x10], 0x3f
jne 0x40478b
push 8
push 0x420e98
push edi
call fcn.004058f0
jmp 0x4047b2
mov esi, dword [ebp + 0x10]
bsf eax, esi
je 0x4047b2
push dword [eax*4 + 0x413068]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x404793
push dword [ebp + 0x14]
push 0x4173d0
push edi
call fcn.00405770
add esp, 0xc
jmp 0x4047dc
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push 0x41b8c8
push edi
call fcn.00405770
add esp, 0x14
push dword [ebp + 0x18]
push 0x4173a4
push edi
call fcn.00405770
add esp, 0xc
test dword [ebp + 0x18], 0xffff0000
je 0x404803
push 0x30
push 0x420eb0
push edi
call fcn.004058f0
mov esi, dword [ebp + 0x18]
test si, si
jne 0x404833
push 8
push 0x420e98
push edi
jmp 0x4044da
push dword [eax*4 + 0x4130e8]
push 0x420e88
push 1
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x404818
jmp 0x40526f
push ecx
movzx ecx, byte [ebp + 0xf]
push ecx
movzx ecx, byte [ebp + 0xe]
push ecx
movzx ecx, ah
push ecx
movzx eax, al
push eax
xor edi, edi
push 0x417218
inc edi
push edi
call fcn.00405770
add esp, 0x1c
test dword [ebp + 0x10], 0x4008a0
je 0x404877
push 0x30
push 0x420eb0
push edi
call fcn.004058f0
mov esi, dword [ebp + 0x10]
test esi, 0xffbff75f
jne 0x4048ab
push 8
push 0x420e98
push edi
call fcn.004058f0
jmp 0x4048b0
push dword [eax*4 + 0x413170]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x404891
mov ebx, dword [ebp + 0x14]
mov ecx, ebx
shr ecx, 0xc
and ecx, 0xf
je 0x4048c3
mov edx, edi
shl edx, cl
jmp 0x4048c7
movzx edx, bl
inc edx
movzx ecx, word [ebp + 0x1a]
movzx eax, word [ebp + 0x16]
push ecx
movzx ecx, word [ebp + 0x18]
push ecx
mov ecx, eax
and eax, 3
lea eax, [eax*8 + 0x28]
shr ecx, 2
push ecx
push eax
movzx eax, bh
push edx
and eax, 0xf
push eax
movzx eax, bl
inc eax
push eax
push 0x4170a8
push edi
call fcn.00405770
add esp, 0x24
jmp 0x40526f
push edx
push ebx
push ecx
mov ecx, eax
shr ecx, 8
push ecx
movzx eax, al
push eax
push 0x416f50
push 1
call fcn.00405770
add esp, 0x1c
test dword [ebp + 0x18], 0x80404000
je 0x404939
push 0x30
push 0x420eb0
push 1
call fcn.004058f0
mov esi, dword [ebp + 0x18]
test esi, 0x7fbfbfff
jne 0x40496b
push 8
push 0x420e98
jmp 0x4044d8
push dword [eax*4 + 0x4131f0]
push 0x420e88
push 1
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x404950
jmp 0x40526f
push edx
mov edx, ecx
push ebx
shr edx, 0x1c
push dword [edx*4 + 0x413818]
mov edx, dword [ebp + 0x12]
and edx, edi
push edx
mov edx, ecx
and ecx, edi
shr edx, 0xc
and edx, 0xf
push dword [edx*4 + 0x413818]
push ecx
mov ecx, eax
shr ecx, 0x1c
push dword [ecx*4 + 0x413818]
mov ecx, dword [ebp + 0xe]
and ecx, edi
push ecx
mov ecx, eax
shr ecx, 0xc
and ecx, 0xf
push dword [ecx*4 + 0x413818]
and eax, edi
push eax
push 0x416c08
push 1
call fcn.00405770
add esp, 0x30
jmp 0x40526f
push eax
xor edi, edi
push 0x416b48
inc edi
push edi
call fcn.00405770
add esp, 0xc
test dword [ebp + 0xc], 0xfffffff8
je 0x4049fb
push 0x33
push 0x416ae0
push edi
call fcn.004058f0
test byte [ebp + 0xc], 7
jne 0x404a10
push 8
push 0x420e98
push edi
call fcn.004058f0
jmp 0x404a37
mov esi, dword [ebp + 0xc]
bsf eax, esi
je 0x404a37
push dword [eax*4 + 0x413278]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x404a18
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x41a640
push edi
call fcn.00405770
add esp, 0x14
jmp 0x40526f
push eax
xor ebx, ebx
push 0x416a20
inc ebx
push ebx
call fcn.00405770
add esp, 0xc
test dword [ebp + 0xc], 0xfffff000
je 0x404a7b
push 0x33
push 0x416ae0
push ebx
call fcn.004058f0
mov esi, dword [ebp + 0xc]
test edi, esi
jne 0x404aab
push 8
push 0x420e98
push ebx
call fcn.004058f0
jmp 0x404ab0
push dword [eax*4 + 0x4132f8]
push 0x420e88
push ebx
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x404a91
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x41a640
push ebx
jmp 0x404a46
push eax
xor ebx, ebx
push 0x416960
inc ebx
push ebx
call fcn.00405770
mov edi, 0x1fffff80
add esp, 0xc
test dword [ebp + 0xc], edi
je 0x404aea
push 0x3d
push 0x41db10
push ebx
call fcn.004058f0
mov esi, dword [ebp + 0xc]
test esi, 0xe000007f
jne 0x404b1e
push 8
push 0x420e98
push ebx
call fcn.004058f0
jmp 0x404b23
push dword [eax*4 + 0x413380]
push 0x420e88
push ebx
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x404b04
mov eax, dword [ebp + 0x14]
mov ecx, 0x420c6c
mov edx, 0x420c70
mov dword [ebp - 4], ecx
test eax, eax
js 0x404b3a
mov dword [ebp - 4], edx
mov dword [ebp - 8], ecx
test eax, 0x40000000
jne 0x404b47
mov dword [ebp - 8], edx
mov esi, ecx
test eax, 0x20000000
jne 0x404b52
mov esi, edx
test eax, 0x10000000
jne 0x404b5b
mov ecx, edx
push dword [ebp + 0x18]
push dword [ebp - 4]
push dword [ebp - 8]
push esi
push ecx
movzx ecx, byte [ebp + 0x17]
and ecx, 0xf
push ecx
movzx ecx, byte [ebp + 0x16]
push ecx
mov ecx, eax
shr ecx, 9
and ecx, 0x7f
push ecx
mov ecx, eax
shr ecx, 6
and ecx, 3
push ecx
mov ecx, eax
shr eax, 4
and eax, 0x1f
shr ecx, 5
and ecx, ebx
push ecx
push eax
movzx eax, byte [ebp + 0x13]
push eax
movzx eax, byte [ebp + 0x12]
push eax
movzx eax, byte [ebp + 0x11]
push eax
movzx eax, byte [ebp + 0x10]
shl eax, 3
push eax
push 0x416628
push ebx
call fcn.00405770
add esp, 0x44
test dword [ebp + 0x18], edi
je 0x404bcb
push 0x3d
push 0x41db10
push ebx
call fcn.004058f0
mov esi, dword [ebp + 0x18]
test esi, 0xe000007f
je 0x404457
jmp 0x404bf7
push dword [eax*4 + 0x413380]
push 0x420e88
push 1
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x404bdc
jmp 0x40526f
and dword [ebp + 8], 0
mov esi, eax
and esi, 0x1f
je 0x40526f
jmp 0x404c1b
mov edx, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 4], 0x420c6c
test dl, 2
jne 0x404c2e
mov dword [ebp - 4], 0x420c70
mov dword [ebp - 8], 0x420c70
test dl, 1
jne 0x404c41
mov dword [ebp - 8], 0x420c6c
mov dword [ebp - 0xc], 0x420c6c
test eax, 0x200
jne 0x404c56
mov dword [ebp - 0xc], 0x420c70
mov edi, 0x420c6c
test eax, 0x100
jne 0x404c67
mov edi, 0x420c70
shr edx, 2
push edx
push dword [ebp - 4]
mov edx, ecx
push dword [ebp - 8]
shr edx, 0x16
inc ebx
push ebx
inc edx
push edx
mov edx, ecx
shr edx, 0xc
and edx, 0x3ff
inc edx
push edx
mov edx, 0xfff
and ecx, edx
inc ecx
push ecx
mov ecx, eax
shr ecx, 0x1a
push ecx
mov ecx, eax
shr ecx, 0xe
and ecx, edx
inc ecx
push ecx
mov ecx, eax
shr ecx, 0xa
and ecx, 0xf
push ecx
push dword [ebp - 0xc]
shr eax, 5
push edi
and eax, 7
push eax
push dword [esi*4 + 0x413798]
push dword [ebp + 8]
push 0x416300
push 1
call fcn.00405770
add esp, 0x44
inc dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov eax, 0x8000001d
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov eax, dword [ebp + 0xc]
mov esi, eax
and esi, 0x1f
jne 0x404c12
jmp 0x40526f
push edx
mov edx, ebx
shr edx, 0xb
push edx
movzx edx, bh
and edx, 7
inc edx
push edx
movzx edx, bl
push edx
movzx edx, word [ebp + 0x12]
push edx
movzx edx, ch
inc edx
push edx
movzx ecx, cl
push ecx
push eax
push 0x4160d0
push 1
call fcn.00405770
add esp, 0x28
jmp 0x40526f
push 0x6a
xor edi, edi
push 0x415ff8
inc edi
push edi
call fcn.004058f0
cmp dword [ebp + 0x5c], 0x68747541
jne 0x404dfe
cmp dword [ebp + 0x60], 0x69746e65
jne 0x404dfe
cmp dword [ebp + 0x64], 0x444d4163
jne 0x404dfe
push dword [ebp + 0xc]
push 0x415fc0
push edi
call fcn.00405770
add esp, 0xc
test dword [ebp + 0xc], 0xc00000
je 0x404d8e
push 0x30
push 0x420eb0
push edi
call fcn.004058f0
mov esi, dword [ebp + 0xc]
test esi, 0xff3fffff
jne 0x404dc2
push 8
push 0x420e98
push edi
call fcn.004058f0
jmp 0x404dc7
push dword [eax*4 + 0x413400]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x404da8
push dword [ebp + 0x18]
movzx eax, word [ebp + 0x12]
push dword [ebp + 0x14]
push eax
mov eax, dword [ebp + 0x10]
mov ecx, eax
shr ecx, 0xc
and ecx, 0xf
push ecx
mov ecx, eax
shr ecx, 6
and ecx, 0x3f
push ecx
and eax, 0x3f
push eax
push 0x415e08
push edi
call fcn.00405770
add esp, 0x20
jmp 0x40526f
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push 0x415d58
push edi
jmp 0x4045b3
push ecx
push eax
xor edi, edi
push 0x415c80
inc edi
push edi
call fcn.00405770
add esp, 0x10
test dword [ebp + 0x10], 0xffffff81
je 0x404e3e
push 0x30
push 0x420eb0
push edi
call fcn.004058f0
test byte [ebp + 0x10], 0x7e
jne 0x404e53
push 8
push 0x420e98
push edi
call fcn.004058f0
jmp 0x404e7a
mov esi, dword [ebp + 0x10]
bsf eax, esi
je 0x404e7a
push dword [eax*4 + 0x413488]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x404e5b
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 0x41e660
push edi
call fcn.00405770
mov eax, dword [ebp + 0x10]
and eax, 0xfffffffe
add esp, 0x10
mov dword [ebp + 4], eax
bsf eax, eax
jmp 0x404ff6
mov ecx, dword [ebp + 8]
mov eax, 0x80000020
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov edx, dword [ebp + 0xc]
mov edi, dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x10]
test edx, edx
jne 0x404ed7
test ebx, ebx
jne 0x404ed7
test eax, eax
jne 0x404ed7
test edi, edi
je 0x404feb
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x404fd6
cmp ecx, 2
jbe 0x404fc9
cmp ecx, 3
je 0x404f47
cmp ecx, 5
jne 0x404fd6
mov esi, 0x420c6c
test al, 1
jne 0x404f07
mov esi, 0x420c70
mov ecx, 0x420c6c
test edx, 0x100
jne 0x404f19
mov ecx, 0x420c70
push edi
shr eax, 0x1f
push eax
movzx eax, word [ebp + 0x12]
push esi
push eax
movzx eax, bx
push eax
mov eax, edx
shr eax, 9
push eax
push ecx
movzx eax, dl
push eax
push 0x415a88
push 1
call fcn.00405770
add esp, 0x28
jmp 0x404feb
push eax
mov eax, ebx
shr eax, 8
push eax
movzx eax, bl
push eax
push edx
xor edi, edi
push 0x415940
inc edi
push edi
call fcn.00405770
add esp, 0x18
test dword [ebp + 0x14], 0xffffff80
je 0x404f7a
push 0x33
push 0x4158d8
push edi
call fcn.004058f0
test byte [ebp + 0x14], 0x7f
jne 0x404f8f
push 8
push 0x420e98
push edi
call fcn.004058f0
jmp 0x404fb6
mov esi, dword [ebp + 0x14]
bsf eax, esi
je 0x404fb6
push dword [eax*4 + 0x413508]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x404f97
push dword [ebp + 0x18]
push 0x4158a8
push edi
call fcn.00405770
add esp, 0xc
jmp 0x404feb
push edi
push eax
push ebx
push edx
push ecx
push ecx
push 0x415748
jmp 0x404fe1
push edi
push eax
push ebx
push edx
push ecx
push ecx
push 0x415630
push 1
call fcn.00405770
add esp, 0x20
mov eax, dword [ebp + 4]
dec eax
and dword [ebp + 4], eax
bsf eax, dword [ebp + 4]
mov dword [ebp + 8], eax
jne 0x404e9f
jmp 0x40526f
push eax
xor edi, edi
push 0x415580
inc edi
push edi
call fcn.00405770
add esp, 0xc
test dword [ebp + 0xc], 0x7f9d030
je 0x40502c
push 0x30
push 0x420eb0
push edi
call fcn.004058f0
mov esi, dword [ebp + 0xc]
test esi, 0xf8062fcf
jne 0x405060
push 8
push 0x420e98
push edi
call fcn.004058f0
jmp 0x405065
push dword [eax*4 + 0x413590]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x405046
push dword [ebp + 0x18]
mov eax, dword [ebp + 0x10]
push dword [ebp + 0x14]
mov ecx, eax
shr ecx, 0xc
and eax, 0x3ff
push ecx
shl eax, 4
push eax
push 0x4154d0
jmp 0x404e0f
push eax
xor edi, edi
push 0x415410
inc edi
push edi
call fcn.00405770
add esp, 0xc
test dword [ebp + 0xc], 0xfffffff8
je 0x4050af
push 0x30
push 0x420eb0
push edi
call fcn.004058f0
test byte [ebp + 0xc], 7
jne 0x4050c4
push 8
push 0x420e98
push edi
call fcn.004058f0
jmp 0x4050eb
mov esi, dword [ebp + 0xc]
bsf eax, esi
je 0x4050eb
push dword [eax*4 + 0x413610]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x4050cc
push dword [ebp + 0x18]
mov eax, dword [ebp + 0x10]
push dword [ebp + 0x14]
mov ecx, eax
shr ecx, 0x16
push ecx
mov ecx, eax
shr ecx, 0x10
and ecx, 0x3f
push ecx
mov ecx, eax
shr ecx, 0xa
and ecx, 0x3f
push ecx
mov ecx, eax
shr ecx, 4
and ecx, 0x3f
push ecx
and eax, 0xf
push eax
push 0x4151f8
jmp 0x4048f8
push eax
xor ebx, ebx
push 0x415138
inc ebx
push ebx
call fcn.00405770
add esp, 0xc
test dword [ebp + 0xc], 0xfffffffe
je 0x40514b
push 0x30
push 0x420eb0
push ebx
call fcn.004058f0
test byte [ebp + 0xc], bl
jne 0x40515f
push 8
push 0x420e98
push ebx
call fcn.004058f0
jmp 0x405186
mov esi, dword [ebp + 0xc]
bsf eax, esi
je 0x405186
push dword [eax*4 + 0x413698]
push 0x420e88
push ebx
call fcn.00405770
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x405167
push dword [ebp + 0x18]
movzx eax, word [ebp + 0x12]
push dword [ebp + 0x14]
push eax
movzx eax, word [ebp + 0x10]
push eax
push 0x415048
push ebx
jmp 0x4045b3
and dword [ebp + 8], 0
test bh, bh
je 0x40526f
jmp 0x4051b8
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov edi, 0x420c6c
mov esi, 0x420c70
mov dword [ebp - 4], edi
test eax, eax
js 0x4051cc
mov dword [ebp - 4], esi
mov dword [ebp - 8], edi
test eax, 0x40000000
jne 0x4051d9
mov dword [ebp - 8], esi
test eax, 0x20000000
jne 0x4051e2
mov edi, esi
movzx esi, byte [ebp + 0x13]
push edx
movzx edx, word [ebp + 0x16]
push edx
movzx edx, byte [ebp + 0x15]
push edx
movzx edx, byte [ebp + 0x14]
push edx
mov edx, esi
shr edx, 4
push edx
movzx edx, byte [ebp + 0x12]
movzx ecx, cx
and esi, 0xf
push esi
push edx
push ecx
push dword [ebp - 4]
mov ecx, eax
push dword [ebp - 8]
shr ecx, 5
push edi
and ecx, 0xffffff
push ecx
and eax, 0x1f
push eax
push dword [ebp + 8]
push 0x414d08
push 1
call fcn.00405770
add esp, 0x40
inc dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov eax, 0x80000026
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
cmp byte [ebp + 0x15], 0
jne 0x4051af
jmp 0x40526f
push edx
push ebx
push ecx
push eax
push dword [ebp]
push 0x414bf0
push 1
call fcn.00405770
add esp, 0x1c
inc dword [ebp]
mov eax, dword [ebp]
xor ecx, ecx
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov eax, dword [ebp]
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
cmp eax, dword [ebp - 0x10]
jbe 0x40420a
mov eax, 0xc0000000
xor ecx, ecx
mov dword [ebp], eax
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
cmp eax, dword [ebp + 0x4c]
jne 0x4052d1
cmp esi, dword [ebp + 0x50]
jne 0x4052d1
cmp edx, dword [ebp + 0x54]
jne 0x4052d1
cmp ecx, dword [ebp + 0x58]
je 0x4053bd
mov dword [ebp - 0x10], eax
cmp eax, 0xc0000000
jb 0x4053bd
mov edi, dword [ebp]
jmp 0x4052f0
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x405304
test esi, esi
jne 0x405304
test edx, edx
jne 0x405304
test ecx, ecx
je 0x40539c
push ecx
push edx
push esi
push eax
cmp edi, 0xc0000000
je 0x40538d
cmp edi, 0xc0000001
je 0x40532a
push edi
push 0x414ad8
push 1
call fcn.00405770
add esp, 0x1c
jmp 0x40539c
push 0x4149a8
push 1
call fcn.00405770
add esp, 0x18
test dword [ebp + 0x18], 0xffffc000
je 0x405350
push 0x30
push 0x420eb0
push 1
call fcn.004058f0
mov esi, dword [ebp + 0x18]
test esi, 0x3fff
jne 0x405386
push 8
push 0x420e98
push 1
call fcn.004058f0
jmp 0x40539c
push dword [eax*4 + 0x413718]
push 0x420e88
push 1
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x40536b
jmp 0x40539c
push 0x414860
push 1
call fcn.00405770
add esp, 0x18
inc edi
xor ecx, ecx
mov eax, edi
cpuid
lea esi, [ebp + 0xc]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [ebp], edi
mov dword [esi + 0xc], edx
cmp edi, dword [ebp - 0x10]
jbe 0x4052e4
cmp dword [ebp - 0x24], 0
je 0x40548d
xor ecx, ecx
xgetbv
push edx
push eax
xor edi, edi
push 0x4147b0
inc edi
push edi
mov dword [0x4220a0], eax
mov dword [0x4220a4], edx
call fcn.00405770
mov ecx, dword [0x4220a0]
mov edx, dword [0x4220a4]
mov eax, ecx
and eax, 0xfff00000
and edx, 0xbfffffff
add esp, 0x10
or eax, edx
je 0x40541a
push 0x30
push 0x420eb0
push edi
call fcn.004058f0
mov ecx, dword [0x4220a0]
mov edx, dword [0x4220a4]
mov eax, ecx
and eax, 0xfffff
and edx, 0x40000000
or eax, edx
jne 0x405440
push 8
push 0x420e98
push edi
call fcn.004058f0
jmp 0x405466
bsf eax, ecx
mov esi, ecx
je 0x405466
push dword [eax*4 + 0x411690]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x405447
mov esi, dword [0x4220a4]
jmp 0x405488
push dword [eax*4 + 0x411710]
push 0x420e88
push edi
call fcn.00405770
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x40546e
pop esi
mov ecx, dword [ebp + 0x68]
mov eax, dword [ebp - 0x1c]
pop edi
xor ecx, ebp
pop ebx
call fcn.00405670
add ebp, 0x6c
leave
ret