Function at 0x401930
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 0x421628
push 2
pop edi
xor ebx, ebx
push edi
mov dword [ebp - 0x1c], 0xa0
mov dword [ebp - 0x24], ebx
call fcn.00405910
cmp dword [ebp + 0x74], 1
je 0x40197b
push 0x5a
push 0x421570
push edi
call fcn.00405910
jmp 0x4054a7
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 0x4019b0
call esi
push eax
push 0x421520
push edi
mov dword [ebp - 0x1c], eax
call fcn.00405790
add esp, 0xc
jmp 0x4019c2
cmp dword [ebp - 0x20], ebx
je 0x4019c2
push 0x43
push 0x421498
push edi
call fcn.00405910
push ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadIdealProcessor]
cmp eax, 0xffffffff
jne 0x4019e9
call esi
push eax
push 0x421438
push edi
mov dword [ebp - 0x1c], eax
call fcn.00405790
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 0x401a0b
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 0x401a30
test eax, eax
jne 0x401a30
test ebx, ebx
jne 0x401a2d
test edx, edx
je 0x403ab1
mov ebx, dword [ebp + 0x14]
mov edi, dword [ebp]
cmp edi, 0x24
ja case.0x401a3c.8
jmp dword [edi*4 + 0x4054bc]
mov dword [ebp + 0x5c], eax
lea eax, [ebp + 0x5c]
push eax
push ecx
push 0x421320
push 1
mov dword [ebp + 0x60], edx
mov dword [ebp + 0x64], ebx
call fcn.00405790
add esp, 0x10
jmp 0x403ab1
push ecx
xor edi, edi
push 0x421260
inc edi
push edi
call fcn.00405790
add esp, 0xc
cmp dword [ebp + 0x5c], 0x756e6547
jne 0x401aeb
cmp dword [ebp + 0x60], 0x49656e69
jne 0x401b52
cmp dword [ebp + 0x64], 0x6c65746e
jne 0x401b52
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 0x4211b8
push edi
call fcn.00405790
add esp, 0x1c
jmp 0x401b52
cmp dword [ebp + 0x5c], 0x68747541
jne 0x401b52
cmp dword [ebp + 0x60], 0x69746e65
jne 0x401b52
cmp dword [ebp + 0x64], 0x444d4163
jne 0x401b52
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 0x401b39
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 0x421128
push edi
call fcn.00405790
add esp, 0x18
movzx eax, byte [ebp + 0x10]
push eax
push 0x4210fc
push edi
call fcn.00405790
add esp, 0xc
cmp byte [ebp + 0x10], 0
je 0x401ba0
cmp dword [ebp + 0x5c], 0x756e6547
jne 0x401ba0
cmp dword [ebp + 0x60], 0x49656e69
jne 0x401ba0
cmp dword [ebp + 0x64], 0x6c65746e
jne 0x401ba0
push dword [ebp + 0xc]
push dword [ebp + 0x10]
call fcn.00401844
push eax
push 0x4210d0
push edi
call fcn.00405790
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 0x420ff8
push edi
call fcn.00405790
mov eax, dword [ebp + 0x14]
add esp, 0x1c
test eax, 0x10000
jne 0x401bd9
test dword [ebp + 0x18], 0x100400
je 0x401be9
push 0x30
push 0x420f90
push edi
call fcn.00405910
mov eax, dword [ebp + 0x14]
mov ebx, 0xfffeffff
test ebx, eax
jne 0x401c0a
test dword [ebp + 0x18], 0xffeffbff
jne 0x401c0a
push 8
push 0x420f78
push edi
call fcn.00405910
jmp 0x401c77
bsf ecx, eax
mov esi, eax
je 0x401c33
push dword [ecx*4 + 0x411808]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf ecx, esi
jne 0x401c11
mov eax, dword [ebp + 0x14]
test ebx, eax
je 0x401c50
test dword [ebp + 0x18], 0xffeffbff
je 0x401c50
push 2
push 0x420f60
push edi
call fcn.00405910
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0x18]
bsf ecx, esi
je 0x401c7a
push dword [ecx*4 + 0x411888]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf ecx, esi
jne 0x401c58
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 0x403ab1
push edx
push ebx
push eax
push ecx
push 0x420e58
push 1
call fcn.00405790
add esp, 0x18
cmp byte [ebp + 0xc], 1
jne 0x401cad
shr dword [ebp + 0xc], 8
xor edi, edi
mov esi, dword [ebp + edi*4 + 0xc]
test esi, esi
js 0x401cdd
je 0x401cdd
mov eax, esi
and eax, 0xff
push dword [eax*4 + 0x4138c8]
push 0x420f68
push 1
call fcn.00405790
shr esi, 8
add esp, 0xc
test esi, esi
jne 0x401cb9
inc edi
cmp edi, 4
jb 0x401caf
jmp 0x403ab1
push edx
push ebx
push eax
push ecx
push 0x420d58
push 1
call fcn.00405790
add esp, 0x18
jmp 0x403ab1
and dword [ebp + 8], 0
mov dword [ebp + 4], ecx
and dword [ebp + 4], 0x1f
je 0x403ab1
jmp 0x401d1c
mov edx, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov edi, 0x420d50
mov esi, 0x420d4c
mov dword [ebp - 0x18], 0x420d44
test dl, 4
jne 0x401d39
mov dword [ebp - 0x18], 0x420d34
mov dword [ebp - 0x14], esi
test dl, 2
jne 0x401d44
mov dword [ebp - 0x14], edi
mov dword [ebp - 0xc], edi
test dl, 1
jne 0x401d4f
mov dword [ebp - 0xc], esi
mov dword [ebp - 8], esi
test ecx, 0x200
jne 0x401d5d
mov dword [ebp - 8], edi
mov dword [ebp - 4], esi
test ecx, 0x100
jne 0x401d6b
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 + 0x413808]
push eax
push dword [ebp + 8]
push 0x420958
push 1
call fcn.00405790
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 0x401d13
jmp 0x403ab1
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 0x4207c8
inc ebx
push ebx
call fcn.00405790
add esp, 0x1c
test dword [ebp + 0x14], 0xfffffff4
je 0x401e4d
push 0x30
push 0x420f90
push ebx
call fcn.00405910
test byte [ebp + 0x14], 0xb
jne 0x401e62
push 8
push 0x420f78
push ebx
call fcn.00405910
jmp 0x401e89
mov esi, dword [ebp + 0x14]
bsf eax, esi
je 0x401e89
push dword [eax*4 + 0x411910]
push 0x420f68
push ebx
call fcn.00405790
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x401e6a
cmp dword [ebp + 0x5c], 0x756e6547
jne 0x401ecc
cmp dword [ebp + 0x60], 0x49656e69
jne 0x401ecc
cmp dword [ebp + 0x64], 0x6c65746e
jne 0x401ecc
mov esi, dword [ebp + 0x18]
xor edi, edi
mov eax, esi
and eax, 0xf
push eax
push edi
push 0x420780
push ebx
call fcn.00405790
add esp, 0x10
inc edi
shr esi, 4
cmp edi, 8
jb 0x401ea9
jmp 0x403ab1
push dword [ebp + 0x18]
push 0x420740
push ebx
call fcn.00405790
add esp, 0xc
jmp 0x403ab1
push ecx
xor ebx, ebx
push 0x420690
inc ebx
push ebx
call fcn.00405790
add esp, 0xc
test dword [ebp + 0xc], 0xfe201008
mov esi, 0x420f90
je 0x401f0b
push 0x30
push esi
push ebx
call fcn.00405910
mov edi, dword [ebp + 0xc]
test edi, 0x1dfeff7
jne 0x401f3f
push 8
push 0x420f78
push ebx
call fcn.00405910
jmp 0x401f44
push dword [eax*4 + 0x411990]
push 0x420f68
push ebx
call fcn.00405790
lea eax, [edi - 1]
add esp, 0xc
and edi, eax
bsf eax, edi
jne 0x401f25
mov eax, dword [ebp + 0x10]
push dword [ebp + 0x14]
mov ecx, eax
shr ecx, 4
push ecx
and eax, 0xf
push eax
push 0x4205c8
push ebx
call fcn.00405790
add esp, 0x14
cmp dword [ebp + 0x5c], 0x756e6547
jne 0x401fe8
cmp dword [ebp + 0x60], 0x49656e69
jne 0x402050
cmp dword [ebp + 0x64], 0x6c65746e
jne 0x402050
test dword [ebp + 0x14], 0xfffffff4
je 0x401f97
push 0x30
push esi
push ebx
call fcn.00405910
test byte [ebp + 0x14], 0xb
jne 0x401fac
push 8
push 0x420f78
push ebx
call fcn.00405910
jmp 0x401fd3
mov esi, dword [ebp + 0x14]
bsf eax, esi
je 0x401fd3
push dword [eax*4 + 0x411a98]
push 0x420f68
push ebx
call fcn.00405790
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x401fb4
movzx eax, byte [ebp + 0x15]
push eax
push 0x420560
push ebx
call fcn.00405790
add esp, 0xc
jmp 0x402050
cmp dword [ebp + 0x5c], 0x68747541
jne 0x402050
cmp dword [ebp + 0x60], 0x69746e65
jne 0x402050
cmp dword [ebp + 0x64], 0x444d4163
jne 0x402050
test dword [ebp + 0x14], 0xfffffffe
je 0x402015
push 0x30
push esi
push ebx
call fcn.00405910
test byte [ebp + 0x14], bl
jne 0x402029
push 8
push 0x420f78
push ebx
call fcn.00405910
jmp 0x402050
mov esi, dword [ebp + 0x14]
bsf eax, esi
je 0x402050
push dword [eax*4 + 0x411a18]
push 0x420f68
push ebx
call fcn.00405790
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x402031
test dword [ebp + 0xc], 0x80000
je 0x4020a0
mov ecx, dword [ebp + 0x18]
mov edx, 0x420d4c
test cl, 2
jne 0x40206b
mov edx, 0x420d50
mov eax, 0x420d4c
test bl, cl
jne 0x402079
mov eax, 0x420d50
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 0x4203b0
push ebx
jmp 0x403aa9
push dword [ebp + 0x18]
push 0x420384
jmp 0x401ed4
push edx
push ebx
push eax
push ecx
xor ebx, ebx
push 0x420268
inc ebx
push ebx
call fcn.00405790
add esp, 0x18
test dword [ebp + 0x18], 0x2210c0
je 0x4020d8
push 0x30
push 0x420f90
push ebx
call fcn.00405910
mov esi, dword [ebp + 0x10]
test esi, esi
jne 0x4020ff
cmp dword [ebp + 0x14], esi
jne 0x4020ff
test dword [ebp + 0x18], 0xffddef3f
jne 0x4020ff
push 8
push 0x420f78
push ebx
call fcn.00405910
jmp 0x40219c
mov edi, 0x420f68
bsf eax, esi
je 0x402121
push dword [eax*4 + 0x411b20]
push edi
push ebx
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
jmp 0x402104
cmp dword [ebp + 0x10], 0
je 0x40213a
cmp dword [ebp + 0x14], 0
je 0x40213a
push 2
push 0x420f60
push ebx
call fcn.00405910
mov esi, dword [ebp + 0x14]
jmp 0x402155
push dword [eax*4 + 0x411ba0]
push edi
push ebx
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x40213f
cmp dword [ebp + 0x10], 0
jne 0x402166
cmp dword [ebp + 0x14], 0
je 0x40217c
test dword [ebp + 0x18], 0xffddef3f
je 0x40217c
push 2
push 0x420f60
push ebx
call fcn.00405910
mov esi, dword [ebp + 0x18]
jmp 0x402197
push dword [eax*4 + 0x411c28]
push edi
push ebx
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x402181
mov eax, dword [ebp + 0xc]
mov dword [ebp + 4], eax
mov dword [ebp + 8], ebx
cmp eax, ebx
jb 0x403ab1
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]
xor ebx, ebx
cmp eax, ebx
jne 0x4021e1
cmp ecx, ebx
jne 0x4021e1
cmp dword [ebp + 0x14], ebx
jne 0x4021e1
cmp dword [ebp + 0x18], ebx
je 0x402389
mov edx, dword [ebp + 8]
dec edx
je 0x402277
dec edx
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push ecx
push eax
je 0x40220d
push dword [ebp + 8]
push 0x420100
push 1
call fcn.00405790
add esp, 0x1c
jmp 0x402389
push 0x41ffd0
push 1
call fcn.00405790
add esp, 0x18
test dword [ebp + 0x18], 0xffffff00
je 0x402233
push 0x30
push 0x420f90
push 1
call fcn.00405910
cmp byte [ebp + 0x18], bl
jne 0x402246
push 8
push 0x420f78
push 1
jmp 0x402362
mov esi, dword [ebp + 0x18]
bsf eax, esi
je 0x402389
push dword [eax*4 + 0x411e38]
push 0x420f68
push 1
call fcn.00405790
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x402252
jmp 0x402389
push ecx
push eax
xor edi, edi
push 0x41fef8
inc edi
push edi
call fcn.00405790
add esp, 0x10
test dword [ebp + 0xc], 0xb301e000
jne 0x40229c
test dword [ebp + 0x10], 0xfffffffc
je 0x4022a9
push 0x30
push 0x420f90
push edi
call fcn.00405910
mov esi, dword [ebp + 0xc]
mov ebx, 0x4cfe1fff
test ebx, esi
jne 0x4022e4
test byte [ebp + 0x10], 3
jne 0x4022e4
push 8
push 0x420f78
push edi
call fcn.00405910
jmp 0x402325
push dword [eax*4 + 0x411ca8]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x4022ca
test dword [ebp + 0xc], ebx
je 0x402301
test byte [ebp + 0x10], 3
je 0x402301
push 2
push 0x420f60
push edi
call fcn.00405910
mov esi, dword [ebp + 0x10]
jmp 0x402320
push dword [eax*4 + 0x411d30]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x402306
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 0x41fea8
push edi
call fcn.00405790
add esp, 0x10
test dword [ebp + 0x18], 0xff511acf
je 0x40234f
push 0x30
push 0x420f90
push edi
call fcn.00405910
mov esi, dword [ebp + 0x18]
test esi, 0xaee530
jne 0x402384
push 8
push 0x420f78
push edi
call fcn.00405910
jmp 0x402389
push dword [eax*4 + 0x411db0]
push 0x420f68
push 1
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x402369
inc dword [ebp + 8]
mov eax, dword [ebp + 8]
cmp eax, dword [ebp + 4]
jbe 0x4021ad
jmp 0x403ab1
push edx
push ebx
push eax
push ecx
push 0x41fd88
jmp 0x401cf1
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 0x41fb60
inc edi
push edi
call fcn.00405790
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 0x4023f2
push 0x2c
push 0x41fb00
push edi
call fcn.00405910
mov esi, dword [ebp + 0x10]
test esi, 0x1fff
jne 0x402426
push 8
push 0x420f78
push edi
call fcn.00405910
jmp 0x40242b
push dword [eax*4 + 0x411eb8]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x40240c
mov eax, dword [ebp + 0x18]
mov ecx, 0x420d4c
test eax, 0x8000
jne 0x40243f
mov ecx, 0x420d50
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 0x41f920
push edi
call fcn.00405790
add esp, 0x20
jmp 0x403ab1
and dword [ebp + 8], 0
test ax, ax
je 0x403ab1
jmp 0x40248c
mov edx, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x14]
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 0x41f700
push 1
call fcn.00405790
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 eax, dword [ebp + 0x10]
test ax, ax
jne 0x402483
jmp 0x403ab1
push ecx
push edx
xor edi, edi
push 0x41f608
inc edi
push edi
call fcn.00405790
add esp, 0x10
test dword [ebp + 0xc], 0xfff80000
jne 0x40250f
test dword [ebp + 0x18], 0xbfffffff
je 0x40251c
push 0x32
push 0x41f5a0
push edi
call fcn.00405910
mov esi, dword [ebp + 0xc]
mov ebx, 0x7ffff
test ebx, esi
jne 0x40255a
test dword [ebp + 0x18], 0x40000000
jne 0x40255a
push 8
push 0x420f78
push edi
call fcn.00405910
jmp 0x40259e
push dword [eax*4 + 0x411f40]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x402540
test dword [ebp + 0xc], ebx
je 0x40257a
test dword [ebp + 0x18], 0x40000000
je 0x40257a
push 2
push 0x420f60
push edi
call fcn.00405910
mov esi, dword [ebp + 0x18]
jmp 0x402599
push dword [eax*4 + 0x411fc0]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x40257f
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x41f4d0
push edi
call fcn.00405790
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 0x4025e1
cmp dword [ebp + 0x10], eax
jne 0x4025e1
cmp dword [ebp + 0x14], eax
jne 0x4025e1
cmp dword [ebp + 0x18], eax
je 0x4026ff
push dword [ebp + 0xc]
xor edi, edi
push 0x41f410
inc edi
push edi
call fcn.00405790
add esp, 0xc
test dword [ebp + 0xc], 0xffffffe0
je 0x40260b
push 0x30
push 0x420f90
push edi
call fcn.00405910
test byte [ebp + 0xc], 0x1f
jne 0x402620
push 8
push 0x420f78
push edi
call fcn.00405910
jmp 0x402647
mov esi, dword [ebp + 0xc]
bsf eax, esi
je 0x402647
push dword [eax*4 + 0x412048]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x402628
push dword [ebp + 0x14]
push dword [ebp + 0x18]
push dword [ebp + 0x10]
push 0x41f338
push edi
call fcn.00405790
add esp, 0x14
test dword [ebp + 0x14], 0xfff80000
jne 0x402670
test dword [ebp + 0x18], 0xbfffffff
je 0x40267d
push 0x32
push 0x41f5a0
push edi
call fcn.00405910
mov esi, dword [ebp + 0x14]
mov ebx, 0x7ffff
test ebx, esi
jne 0x4026bb
test dword [ebp + 0x18], 0x40000000
jne 0x4026bb
push 8
push 0x420f78
push edi
call fcn.00405910
jmp 0x4026ff
push dword [eax*4 + 0x411f40]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x4026a1
test dword [ebp + 0x14], ebx
je 0x4026db
test dword [ebp + 0x18], 0x40000000
je 0x4026db
push 2
push 0x420f60
push edi
call fcn.00405910
mov esi, dword [ebp + 0x18]
jmp 0x4026fa
push dword [eax*4 + 0x411fc0]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x4026e0
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 0x4027a7
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 0x40274d
cmp dword [ebp + 0x10], ecx
jne 0x40274d
cmp eax, ecx
jne 0x40274d
cmp dword [ebp + 0x18], ecx
je 0x40279c
mov esi, 0x420d4c
test al, 4
jne 0x40275b
mov esi, 0x420d50
mov edx, 0x41f334
test al, 2
jne 0x402769
mov edx, 0x41f330
mov ecx, 0x41f324
test al, 1
jne 0x402777
mov ecx, 0x41f31c
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 0x41f0c8
push 1
call fcn.00405790
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 0x402725
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 0x403ab1
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 0x402805
cmp dword [ebp + 0x10], ecx
jne 0x402805
cmp eax, ecx
jne 0x402805
cmp dword [ebp + 0x18], ecx
je 0x402845
mov edx, 0x41f334
test al, 2
jne 0x402813
mov edx, 0x41f330
mov ecx, 0x41f324
test al, 1
jne 0x402821
mov ecx, 0x41f31c
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 0x41eea8
push 1
call fcn.00405790
add esp, 0x28
mov eax, dword [ebp + 4]
dec eax
and dword [ebp + 4], eax
bsf ecx, dword [ebp + 4]
jne 0x4027d4
jmp 0x403ab1
push edx
push ebx
push eax
push ecx
xor edi, edi
push 0x41ed38
inc edi
push edi
call fcn.00405790
add esp, 0x18
test dword [ebp + 0x18], 0xfffffffd
je 0x402882
push 0x30
push 0x420f90
push edi
call fcn.00405910
test byte [ebp + 0x18], 2
jne 0x402897
push 8
push 0x420f78
push edi
call fcn.00405910
jmp 0x4028be
mov esi, dword [ebp + 0x18]
bsf eax, esi
je 0x4028be
push dword [eax*4 + 0x4120c8]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x40289f
mov eax, dword [ebp + 0x18]
and eax, 0xfffffffe
mov dword [ebp + 4], eax
bsf eax, eax
jmp 0x4029c5
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 0x40290e
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push 0x41ebc8
push 1
call fcn.00405790
add esp, 0x1c
jmp 0x4029ba
mov edx, dword [ebp + 0xc]
mov eax, 0x420d4c
mov ecx, 0x420d50
mov edi, eax
test edx, 0x400
jne 0x402927
mov edi, ecx
mov esi, eax
test edx, 0x200
jne 0x402933
mov esi, ecx
test edx, 0x100
jne 0x40293d
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 0x41e8e0
push 1
call fcn.00405790
add esp, 0x28
test dword [ebp + 0x18], 0xfffffff8
je 0x40297c
push 0x2e
push 0x41e880
push 1
call fcn.00405910
test byte [ebp + 0x18], 7
jne 0x402992
push 8
push 0x420f78
push 1
call fcn.00405910
jmp 0x4029ba
mov esi, dword [ebp + 0x18]
bsf eax, esi
je 0x4029ba
push dword [eax*4 + 0x412150]
push 0x420f68
push 1
call fcn.00405790
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x40299a
mov eax, dword [ebp + 4]
dec eax
and dword [ebp + 4], eax
bsf eax, dword [ebp + 4]
mov dword [ebp + 8], eax
jne 0x4028cf
jmp 0x403ab1
push eax
push ecx
xor edi, edi
push 0x41e788
inc edi
push edi
call fcn.00405790
add esp, 0x10
test dword [ebp + 0x10], 0xffffffd1
je 0x4029fc
push 0x30
push 0x420f90
push edi
call fcn.00405910
test byte [ebp + 0x10], 0x2e
jne 0x402a11
push 8
push 0x420f78
push edi
call fcn.00405910
jmp 0x402a38
mov esi, dword [ebp + 0x10]
bsf eax, esi
je 0x402a38
push dword [eax*4 + 0x4121d0]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x402a19
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 0x41e740
push edi
call fcn.00405790
mov eax, dword [ebp + 0x10]
and eax, 0xfffffffe
add esp, 0x10
mov dword [ebp + 4], eax
bsf eax, eax
jmp 0x402c53
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 0x402bbc
dec eax
je 0x402b51
dec eax
je 0x402af5
dec eax
dec eax
je 0x402aae
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push 0x41e5d0
push 1
call fcn.00405790
add esp, 0x1c
jmp 0x402c48
mov eax, dword [ebp + 0x14]
mov ecx, 0x420d4c
test al, 4
jne 0x402abf
mov ecx, 0x420d50
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 0x41e360
jmp 0x402b42
mov eax, dword [ebp + 0x14]
mov edx, 0x420d4c
test al, 4
jne 0x402b06
mov edx, 0x420d50
mov ecx, 0x420d4c
test al, 1
jne 0x402b14
mov ecx, 0x420d50
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 0x41e0e8
push 1
call fcn.00405790
add esp, 0x2c
jmp 0x402c48
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 0x41df88
inc edi
push edi
call fcn.00405790
add esp, 0x14
test dword [ebp + 0x14], 0xfffffff3
je 0x402b89
push 0x2d
push 0x41df28
push edi
call fcn.00405910
test byte [ebp + 0x14], 0xc
je 0x402bfa
mov esi, dword [ebp + 0x14]
bsf eax, esi
je 0x402c30
push dword [eax*4 + 0x4122d8]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x402b9b
jmp 0x402c30
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 0x41ddc8
inc edi
push edi
call fcn.00405790
add esp, 0x14
test dword [ebp + 0x14], 0xfffffff1
je 0x402bf4
push 0x2d
push 0x41df28
push edi
call fcn.00405910
test byte [ebp + 0x14], 0xe
jne 0x402c09
push 8
push 0x420f78
push edi
call fcn.00405910
jmp 0x402c30
mov esi, dword [ebp + 0x14]
bsf eax, esi
je 0x402c30
push dword [eax*4 + 0x412258]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x402c11
movzx eax, word [ebp + 0x1a]
push eax
movzx eax, word [ebp + 0x18]
push eax
push 0x41dd50
push edi
call fcn.00405790
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 0x402a5d
jmp 0x403ab1
push ecx
xor esi, esi
push 0x41dc70
inc esi
push esi
call fcn.00405790
add esp, 0xc
test dword [ebp + 0xc], 0xfffff31c
je 0x402c89
push 0x3d
push 0x41dbf0
push esi
call fcn.00405910
mov edi, dword [ebp + 0xc]
test edi, 0xce3
jne 0x402cbd
push 8
push 0x420f78
push esi
call fcn.00405910
jmp 0x402cc2
push dword [eax*4 + 0x412360]
push 0x420f68
push esi
call fcn.00405790
lea eax, [edi - 1]
add esp, 0xc
and edi, eax
bsf eax, edi
jne 0x402ca3
push dword [ebp + 0x10]
push 0x41dba8
push esi
call fcn.00405790
add esp, 0xc
test dword [ebp + 0x10], 0xfffffffc
je 0x402ce9
push 0x34
push 0x41db38
push esi
call fcn.00405910
test byte [ebp + 0x10], 3
jne 0x402cfe
push 8
push 0x420f78
push esi
call fcn.00405910
jmp 0x402d25
mov edi, dword [ebp + 0x10]
bsf eax, edi
je 0x402d25
push dword [eax*4 + 0x4123e0]
push 0x420f68
push esi
call fcn.00405790
lea eax, [edi - 1]
and edi, eax
add esp, 0xc
bsf eax, edi
jne 0x402d06
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 0x41da58
push esi
call fcn.00405790
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 0x402d80
test ecx, ecx
jne 0x402d80
cmp dword [ebp + 0x14], ecx
jne 0x402d80
cmp dword [ebp + 0x18], ecx
je 0x402f14
mov edx, dword [ebp + 8]
dec edx
je 0x402e3a
dec edx
jne 0x402d97
mov edx, eax
and dl, 0xf
cmp dl, 1
je 0x402db6
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push ecx
push eax
push dword [ebp + 8]
push 0x41d900
push 1
call fcn.00405790
add esp, 0x1c
jmp 0x402f14
mov edx, ecx
shr edx, 0x14
push edx
mov esi, 0xfffff
and ecx, esi
push ecx
mov ecx, eax
mov edi, 0xfffff000
and ecx, edi
push ecx
shr eax, 4
mov ebx, 0xff
and eax, ebx
push eax
push 0x41d788
push 1
call fcn.00405790
mov eax, dword [ebp + 0x14]
mov dword [ebp + 4], eax
add esp, 0x18
and dword [ebp + 4], 0xf
je 0x402e22
cmp dword [ebp + 4], 3
ja 0x402e22
mov ecx, dword [ebp + 0x18]
mov edx, ecx
shr edx, 0x14
push edx
and ecx, esi
push ecx
mov ecx, eax
and ecx, edi
shr eax, 4
push ecx
and eax, ebx
push eax
mov eax, dword [ebp + 4]
push dword [eax*4 + 0x412568]
push 0x41d6a0
jmp 0x402da7
push dword [ebp + 0x18]
push eax
push 0x41d650
push 1
call fcn.00405790
add esp, 0x10
jmp 0x402f14
push eax
xor ebx, ebx
push 0x41d578
inc ebx
push ebx
call fcn.00405790
add esp, 0xc
test dword [ebp + 0xc], 0xffffff08
je 0x402e62
push 0x2c
push 0x41fb00
push ebx
call fcn.00405910
test byte [ebp + 0xc], 0xf7
jne 0x402e77
push 8
push 0x420f78
push ebx
call fcn.00405910
jmp 0x402e9e
mov esi, dword [ebp + 0xc]
bsf eax, esi
je 0x402e9e
push dword [eax*4 + 0x412468]
push 0x420f68
push ebx
call fcn.00405790
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x402e7f
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x41d518
push ebx
call fcn.00405790
add esp, 0x10
test dword [ebp + 0x14], 0xfffffffe
je 0x402ec8
push 0x2c
push 0x41fb00
push ebx
call fcn.00405910
test byte [ebp + 0x14], bl
jne 0x402edc
push 8
push 0x420f78
push ebx
call fcn.00405910
jmp 0x402f03
mov esi, dword [ebp + 0x14]
bsf eax, esi
je 0x402f03
push dword [eax*4 + 0x4124e8]
push 0x420f68
push ebx
call fcn.00405790
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x402ee4
push dword [ebp + 0x18]
push 0x41d4e8
push ebx
call fcn.00405790
add esp, 0xc
inc dword [ebp + 8]
cmp dword [ebp + 8], 0x21
jb 0x402d4e
jmp 0x403ab1
push ebx
push eax
push ecx
xor edi, edi
push 0x41d3f8
inc edi
push edi
call fcn.00405790
add esp, 0x14
test dword [ebp + 0x10], 0xfffffc00
jne 0x402f4c
test dword [ebp + 0x14], 0x7ffffff0
je 0x402f59
push 0x3d
push 0x41dbf0
push edi
call fcn.00405910
mov esi, dword [ebp + 0x10]
mov ebx, 0x3ff
test ebx, esi
jne 0x402f97
test dword [ebp + 0x14], 0x8000000f
jne 0x402f97
push 8
push 0x420f78
push edi
call fcn.00405910
jmp 0x402fdb
push dword [eax*4 + 0x412580]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x402f7d
test dword [ebp + 0x10], ebx
je 0x402fb7
test dword [ebp + 0x14], 0x8000000f
je 0x402fb7
push 2
push 0x420f60
push edi
call fcn.00405910
mov esi, dword [ebp + 0x14]
jmp 0x402fd6
push dword [eax*4 + 0x412600]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x402fbc
push dword [ebp + 0x18]
push 0x41d3d0
push edi
call fcn.00405790
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 0x403ab1
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 0x40303d
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push ebx
push 0x41d290
push 1
call fcn.00405790
add esp, 0x1c
jmp 0x4030dc
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 0x41d008
inc edi
push edi
call fcn.00405790
add esp, 0x28
test dword [ebp + 0x14], 0xffff7ffc
je 0x403092
push 0x30
push 0x41cfa0
push edi
call fcn.00405910
mov esi, dword [ebp + 0x14]
test esi, 0x8003
jne 0x4030c6
push 8
push 0x420f78
push edi
call fcn.00405910
jmp 0x4030cb
push dword [eax*4 + 0x412688]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x4030ac
push dword [ebp + 0x18]
push 0x41cf70
push edi
call fcn.00405790
add esp, 0xc
inc ebx
mov dword [ebp + 8], ebx
cmp ebx, dword [ebp + 4]
jbe 0x402fff
jmp 0x403ab1
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 0x41cd50
jmp 0x403aa7
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 0x41cb48
push 1
call fcn.00405790
add esp, 0x24
jmp 0x403ab1
mov ebx, dword [ebp + 0x12]
mov esi, 0x420d4c
test bl, 1
jne 0x403150
mov esi, 0x420d50
push edx
push dword [ebp + 0x14]
and ebx, 0xfffe
push ebx
push esi
movzx eax, ax
push eax
push ecx
xor edi, edi
push 0x41c9b8
inc edi
push edi
call fcn.00405790
mov eax, dword [ebp + 0xc]
add esp, 0x20
mov dword [ebp + 4], eax
mov dword [ebp + 8], edi
cmp eax, edi
jb 0x403ab1
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 0x403212
dec eax
je 0x4031f1
dec eax
je 0x4031c4
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push edi
push 0x41c870
push 1
call fcn.00405790
add esp, 0x1c
jmp 0x403238
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 0x41c7c8
push 1
call fcn.00405790
add esp, 0xc
jmp 0x403238
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 0x41c730
jmp 0x403231
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 0x41c690
push 1
call fcn.00405910
inc edi
mov dword [ebp + 8], edi
cmp edi, dword [ebp + 4]
jbe 0x403183
jmp 0x403ab1
mov dword [ebp - 4], 0x420d4c
test edx, 0x100
jne 0x403260
mov dword [ebp - 4], 0x420d50
mov dword [ebp - 8], 0x420d4c
test al, 8
jne 0x403272
mov dword [ebp - 8], 0x420d50
mov dword [ebp - 0xc], 0x420d4c
test al, 4
jne 0x403284
mov dword [ebp - 0xc], 0x420d50
mov dword [ebp - 0x14], 0x420d4c
test al, 2
jne 0x403296
mov dword [ebp - 0x14], 0x420d50
mov dword [ebp - 0x18], 0x420d4c
test al, 1
jne 0x4032a8
mov dword [ebp - 0x18], 0x420d50
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 + 0x413808]
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 0x41c2b0
push esi
call fcn.00405790
mov eax, dword [ebp + 0xc]
add esp, 0x48
mov dword [ebp + 4], eax
mov dword [ebp + 8], esi
cmp eax, esi
jb 0x403ab1
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 0x403357
test ecx, ecx
jne 0x403357
cmp dword [ebp + 0x14], ecx
jne 0x403357
test eax, eax
je 0x403400
mov edx, 0x420d4c
mov esi, 0x420d50
mov dword [ebp - 4], edx
test eax, 0x100
jne 0x40336e
mov dword [ebp - 4], esi
mov dword [ebp - 8], edx
test cl, 8
jne 0x403379
mov dword [ebp - 8], esi
mov ebx, edx
test cl, 4
jne 0x403382
mov ebx, esi
mov edi, edx
test cl, 2
jne 0x40338b
mov edi, esi
test cl, 1
jne 0x403392
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 + 0x413808]
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 0x41bee8
push 1
call fcn.00405790
add esp, 0x4c
inc dword [ebp + 8]
mov eax, dword [ebp + 8]
cmp eax, dword [ebp + 4]
jbe 0x403324
jmp 0x403ab1
mov edx, 0x420d4c
mov esi, 0x420d50
mov dword [ebp - 4], edx
test cl, 4
jne 0x403429
mov dword [ebp - 4], esi
mov edi, edx
test cl, 2
jne 0x403432
mov edi, esi
test cl, 1
jne 0x403439
mov edx, esi
push ebx
push eax
shr ecx, 3
push ecx
push dword [ebp - 4]
push edi
push edx
xor edi, edi
push 0x41bd08
inc edi
push edi
call fcn.00405790
add esp, 0x20
test dword [ebp + 0x10], 0xffffffea
jne 0x403467
test dword [ebp + 0x14], 0xfffffffc
je 0x403474
push 0x30
push 0x420f90
push edi
call fcn.00405910
test byte [ebp + 0x10], 0x15
jne 0x403492
test byte [ebp + 0x14], 3
jne 0x403492
push 8
push 0x420f78
push edi
call fcn.00405910
jmp 0x403ab1
mov esi, dword [ebp + 0x10]
bsf eax, esi
je 0x4034b9
push dword [eax*4 + 0x412708]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x40349a
test byte [ebp + 0x10], 0x15
je 0x4034d2
test byte [ebp + 0x14], 3
je 0x4034d2
push 2
push 0x420f60
push edi
call fcn.00405910
mov esi, dword [ebp + 0x14]
jmp 0x4034f2
push dword [eax*4 + 0x412790]
push 0x420f68
push 1
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x4034d7
jmp 0x403ab1
push edx
push ebx
push eax
movzx eax, byte [ebp + 0xf]
push eax
and ecx, 0xffffff
push ecx
push 0x41bb98
jmp 0x403aa7
and dword [ebp + 8], 0
mov eax, ecx
and eax, esi
je 0x403ab1
push 2
pop edi
jmp 0x40352b
mov edi, dword [ebp - 4]
shr ecx, 0xc
push ecx
push eax
push dword [ebp + 8]
xor ebx, ebx
push 0x41bac8
inc ebx
push ebx
call fcn.00405790
mov eax, dword [ebp + 0xc]
add esp, 0x14
push dword [ebp + 0x18]
and eax, esi
cmp eax, ebx
jne 0x40356f
lea eax, [edi + 1]
push eax
push dword [ebp + 0x14]
lea eax, [edi - 1]
push edi
push dword [ebp + 0x10]
push eax
push 0x41ba18
push ebx
call fcn.00405790
add esp, 0x20
jmp 0x403583
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x41b9a8
push ebx
call fcn.00405790
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 0x403528
jmp 0x403ab1
mov esi, 0x420d4c
mov dword [ebp - 4], esi
test bl, 4
jne 0x4035cd
mov dword [ebp - 4], 0x420d50
mov dword [ebp - 8], esi
test bl, 2
jne 0x4035dc
mov dword [ebp - 8], 0x420d50
mov dword [ebp - 0xc], esi
test bl, 1
jne 0x4035eb
mov dword [ebp - 0xc], 0x420d50
mov dword [ebp - 0x14], esi
test al, 4
jne 0x4035f9
mov dword [ebp - 0x14], 0x420d50
mov dword [ebp - 0x18], esi
test al, 2
jne 0x403607
mov dword [ebp - 0x18], 0x420d50
mov dword [ebp + 4], esi
test al, 1
jne 0x403615
mov dword [ebp + 4], 0x420d50
mov edi, esi
test ecx, ecx
js 0x403620
mov edi, 0x420d50
test ecx, 0x40000000
jne 0x40362d
mov esi, 0x420d50
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 0x41b5c0
push 1
call fcn.00405790
add esp, 0x44
jmp 0x403ab1
push edx
push ebx
push eax
push ecx
xor edi, edi
push 0x41b4a8
inc edi
push edi
call fcn.00405790
mov eax, dword [ebp + 0xc]
add esp, 0x18
mov dword [ebp + 4], eax
mov dword [ebp + 8], edi
cmp eax, edi
jb 0x403ab1
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 0x4036e4
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push edi
push edi
push 0x41b348
push 1
call fcn.00405790
add esp, 0x20
jmp 0x403711
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 0x41b188
push 1
call fcn.00405790
add esp, 0x24
inc edi
mov dword [ebp + 8], edi
cmp edi, dword [ebp + 4]
jbe 0x4036a8
jmp 0x403ab1
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 0x41b020
push 1
jmp 0x402467
and dword [ebp + 8], 0
test ax, ax
je 0x403ab1
jmp 0x40375b
mov edx, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x14]
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 0x41adf8
push 1
call fcn.00405790
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 eax, dword [ebp + 0x10]
test ax, ax
jne 0x403752
jmp 0x403ab1
push edx
push ebx
push eax
push ecx
xor esi, esi
push 0x41acc0
inc esi
push esi
call fcn.00405790
mov eax, dword [ebp + 0xc]
add esp, 0x18
mov dword [ebp + 4], eax
mov dword [ebp + 8], esi
cmp eax, esi
jb 0x403ab1
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 0x40380b
cmp dword [ebp + 0x10], eax
jne 0x40380b
cmp dword [ebp + 0x14], eax
jne 0x40380b
cmp dword [ebp + 0x18], eax
je 0x403829
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push 0x41ab70
push 1
call fcn.00405790
add esp, 0x1c
inc dword [ebp + 8]
mov eax, dword [ebp + 8]
cmp eax, dword [ebp + 4]
jbe 0x4037df
jmp 0x403ab1
push eax
push ecx
xor edi, edi
push 0x41aa58
inc edi
push edi
call fcn.00405790
add esp, 0x10
test dword [ebp + 0x10], 0xfffffffc
je 0x403862
push 0x2e
push 0x41e880
push edi
call fcn.00405910
test byte [ebp + 0x10], 3
jne 0x403877
push 8
push 0x420f78
push edi
call fcn.00405910
jmp 0x40389e
mov esi, dword [ebp + 0x10]
bsf eax, esi
je 0x40389e
push dword [eax*4 + 0x412810]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x40387f
push dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
shr eax, 8
push eax
movzx eax, byte [ebp + 0x14]
push eax
push 0x41a9e8
push edi
call fcn.00405790
mov eax, dword [ebp + 0xc]
and eax, 0xfffffffe
add esp, 0x14
mov dword [ebp + 4], eax
bsf eax, eax
jmp 0x4039d4
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 0x403902
test esi, esi
jne 0x403902
test edx, edx
jne 0x403902
test ecx, ecx
je 0x4039c9
mov edi, dword [ebp + 8]
dec edi
je 0x4039b6
dec edi
je 0x4039ab
dec edi
je 0x403931
push ecx
push edx
push esi
push eax
push dword [ebp + 8]
push 0x41a868
push 1
call fcn.00405790
add esp, 0x1c
jmp 0x4039c9
push eax
xor edi, edi
push 0x41a788
inc edi
push edi
call fcn.00405790
add esp, 0xc
test dword [ebp + 0xc], 0xffffe000
je 0x403959
push 0x2e
push 0x41e880
push edi
call fcn.00405910
mov esi, dword [ebp + 0xc]
test esi, 0x1fff
jne 0x40398d
push 8
push 0x420f78
push edi
call fcn.00405910
jmp 0x403992
push dword [eax*4 + 0x412898]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x403973
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x41a720
push edi
call fcn.00405790
add esp, 0x14
jmp 0x4039c9
push ecx
push edx
push esi
push eax
push 0x41a538
jmp 0x4039bf
push ecx
push edx
push esi
push eax
push 0x41a368
push 1
call fcn.00405790
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 0x4038cc
jmp 0x403ab1
mov esi, 0x420d4c
mov dword [ebp - 4], esi
test eax, 0x40000
jne 0x4039f8
mov dword [ebp - 4], 0x420d50
mov edi, esi
test eax, 0x20000
jne 0x403a06
mov edi, 0x420d50
test eax, 0x10000
jne 0x403a12
mov esi, 0x420d50
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 0x41a120
inc esi
push esi
call fcn.00405790
mov eax, dword [ebp + 0xc]
add esp, 0x2c
mov dword [ebp + 4], eax
mov dword [ebp + 8], esi
cmp eax, esi
jb 0x403ab1
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 0x403a72
cmp dword [ebp + 0x10], eax
jne 0x403a72
cmp dword [ebp + 0x14], eax
jne 0x403a72
cmp dword [ebp + 0x18], eax
je 0x403a90
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push 0x419fd0
push 1
call fcn.00405790
add esp, 0x1c
inc dword [ebp + 8]
mov eax, dword [ebp + 8]
cmp eax, dword [ebp + 4]
jbe 0x403a46
jmp 0x403ab1
push edx
push ebx
push eax
push ecx
push edi
push 0x419ec0
push 1
call fcn.00405790
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 0x401a08
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 0x403b25
cmp edx, dword [ebp + 0x50]
jne 0x403b25
cmp esi, dword [ebp + 0x54]
jne 0x403b25
cmp ecx, dword [ebp + 0x58]
je 0x404135
mov dword [ebp - 0x10], eax
cmp eax, 0x40000000
jb 0x404135
jmp 0x403b41
mov ecx, dword [ebp + 0x18]
mov esi, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov edi, 0x420f90
test eax, eax
jne 0x403b5a
test edx, edx
jne 0x403b5a
test esi, esi
jne 0x403b5a
test ecx, ecx
je 0x404111
mov ebx, dword [ebp]
add ebx, 0xc0000000
cmp ebx, 0x10
ja case.0x403b6c.1073741835
jmp dword [ebx*4 + 0x405550]
lea ecx, [ebp + 0x10]
push ecx
push eax
push 0x419d88
push 1
call fcn.00405790
add esp, 0x10
jmp 0x404111
push ecx
push esi
push edx
push eax
push 0x419c50
push 1
call fcn.00405790
add esp, 0x18
jmp 0x404111
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 0x419b08
push 1
call fcn.00405790
add esp, 0x20
jmp 0x404111
push edx
push eax
xor ebx, ebx
push 0x419a28
inc ebx
push ebx
call fcn.00405790
add esp, 0x10
test dword [ebp + 0xc], 0xffffc000
jne 0x403bf4
test dword [ebp + 0x10], 0xffc44600
je 0x403c01
push 0x32
push 0x4199c0
push ebx
call fcn.00405910
mov esi, dword [ebp + 0xc]
test esi, 0x3fff
jne 0x403c3e
test dword [ebp + 0x10], 0x3bb9ff
jne 0x403c3e
push 8
push 0x420f78
push ebx
call fcn.00405910
jmp 0x403c86
push dword [eax*4 + 0x412918]
push 0x420f68
push ebx
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x403c24
test dword [ebp + 0xc], 0x3fff
je 0x403c62
test dword [ebp + 0x10], 0x3bb9ff
je 0x403c62
push 2
push 0x420f60
push ebx
call fcn.00405910
mov esi, dword [ebp + 0x10]
jmp 0x403c81
push dword [eax*4 + 0x4129a0]
push 0x420f68
push ebx
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x403c67
mov eax, dword [ebp + 0x14]
mov ecx, 0x420d4c
test al, 0x10
jne 0x403c97
mov ecx, 0x420d50
push dword [ebp + 0x18]
mov edx, eax
shr edx, 5
push edx
push ecx
and eax, 3
push eax
push 0x4198b0
push ebx
call fcn.00405790
add esp, 0x18
test dword [ebp + 0x18], 0xfb400000
je 0x403cc5
push 0x30
push edi
push ebx
call fcn.00405910
mov esi, dword [ebp + 0x18]
test esi, 0x4bfffff
jne 0x403cfd
push 8
push 0x420f78
push ebx
call fcn.00405910
jmp 0x404111
push dword [eax*4 + 0x412aa8]
push 0x420f68
push 1
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x403ce2
jmp 0x404111
push eax
xor edi, edi
push 0x4197c0
inc edi
push edi
call fcn.00405790
add esp, 0xc
test dword [ebp + 0xc], 0xfff90000
je 0x403d2f
push 0x37
push 0x419750
push edi
call fcn.00405910
mov esi, dword [ebp + 0xc]
test esi, 0x6ffff
jne 0x403d63
push 8
push 0x420f78
push edi
call fcn.00405910
jmp 0x403d68
push dword [eax*4 + 0x412b28]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x403d49
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 0x419690
push edi
jmp 0x403b97
push ecx
push esi
push edx
push eax
push 0x4194d8
jmp 0x403b95
push eax
xor ebx, ebx
push 0x419410
inc ebx
push ebx
call fcn.00405790
add esp, 0xc
test dword [ebp + 0xc], 0xfe00bc00
je 0x403db8
push 0x30
push edi
push ebx
call fcn.00405910
mov esi, dword [ebp + 0xc]
test esi, 0x1ff43ff
jne 0x403dec
push 8
push 0x420f78
push ebx
call fcn.00405910
jmp 0x403df1
push dword [eax*4 + 0x412bb0]
push 0x420f68
push ebx
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x403dd2
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x41a720
push ebx
call fcn.00405790
add esp, 0x14
jmp 0x404111
push esi
push edx
push eax
xor ebx, ebx
push 0x419338
inc ebx
push ebx
call fcn.00405790
add esp, 0x14
test dword [ebp + 0xc], 0x7ffffff8
jne 0x403e3c
test dword [ebp + 0x10], 0xfffffff8
jne 0x403e3c
test dword [ebp + 0x14], 0xfffffffe
je 0x403e45
push 0x30
push edi
push ebx
call fcn.00405910
mov esi, dword [ebp + 0xc]
test esi, 0x80000007
jne 0x403e6d
test byte [ebp + 0x10], 7
jne 0x403e6d
test byte [ebp + 0x14], bl
jne 0x403e6d
push 8
push 0x420f78
push ebx
call fcn.00405910
jmp 0x403f0c
mov edi, 0x420f68
bsf eax, esi
je 0x403e8f
push dword [eax*4 + 0x412c30]
push edi
push ebx
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
jmp 0x403e72
test dword [ebp + 0xc], 0x80000007
je 0x403eab
test byte [ebp + 0x10], 7
je 0x403eab
push 2
push 0x420f60
push ebx
call fcn.00405910
mov esi, dword [ebp + 0x10]
jmp 0x403ec6
push dword [eax*4 + 0x412cb8]
push edi
push ebx
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x403eb0
test dword [ebp + 0xc], 0x80000007
jne 0x403eda
test byte [ebp + 0x10], 7
je 0x403eec
test byte [ebp + 0x14], bl
je 0x403eec
push 2
push 0x420f60
push ebx
call fcn.00405910
mov esi, dword [ebp + 0x14]
jmp 0x403f07
push dword [eax*4 + 0x412d38]
push edi
push ebx
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x403ef1
push dword [ebp + 0x18]
push 0x419310
push ebx
call fcn.00405790
add esp, 0xc
jmp 0x404111
mov edi, 0x420d4c
test al, 1
jne 0x403f30
mov edi, 0x420d50
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 0x419138
jmp 0x403bc0
push eax
xor ebx, ebx
push 0x419070
inc ebx
push ebx
call fcn.00405790
add esp, 0xc
test dword [ebp + 0xc], 0xffffef8b
je 0x403f70
push 0x30
push edi
push ebx
call fcn.00405910
mov esi, dword [ebp + 0xc]
test esi, 0x1074
jne 0x403fa4
push 8
push 0x420f78
push ebx
call fcn.00405910
jmp 0x403fa9
push dword [eax*4 + 0x412dc0]
push 0x420f68
push ebx
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x403f8a
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x418fe8
push ebx
call fcn.00405790
add esp, 0x14
test dword [ebp + 0x18], 0xfffd7fef
je 0x403fd2
push 0x30
push edi
push ebx
call fcn.00405910
mov esi, dword [ebp + 0x18]
test esi, 0x28010
je 0x403cd0
jmp 0x403ffe
push dword [eax*4 + 0x412e40]
push 0x420f68
push 1
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x403fe3
jmp 0x404111
movzx ecx, word [ebp + 0xe]
push ecx
movzx ecx, al
push ecx
movzx eax, ah
push eax
xor ebx, ebx
push 0x418ee0
inc ebx
push ebx
call fcn.00405790
mov eax, dword [ebp + 0xc]
add esp, 0x14
test eax, 0xffa1ffff
je 0x40403c
push 0x30
push edi
push ebx
call fcn.00405910
mov eax, dword [ebp + 0xc]
test eax, 0x5e0000
jne 0x404052
push 8
push 0x420f78
push ebx
call fcn.00405910
jmp 0x40407d
and eax, 0xffff0000
mov esi, eax
bsf eax, eax
je 0x40407d
push dword [eax*4 + 0x412ec8]
push 0x420f68
push ebx
call fcn.00405790
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x40405e
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x418e68
jmp 0x403dff
push eax
xor ebx, ebx
push 0x418dc8
inc ebx
push ebx
call fcn.00405790
add esp, 0xc
test dword [ebp + 0xc], 0xfffffffe
je 0x4040b4
push 0x30
push edi
push ebx
call fcn.00405910
test byte [ebp + 0xc], bl
je 0x403dc3
mov esi, dword [ebp + 0xc]
bsf eax, esi
je 0x403df1
push dword [eax*4 + 0x412f48]
push 0x420f68
push ebx
call fcn.00405790
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x4040c9
jmp 0x403df1
push ecx
push esi
push edx
push eax
push 0x418c40
jmp 0x403b95
push ecx
push esi
push edx
push eax
push dword [ebp]
push 0x418b20
push 1
call fcn.00405790
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 0x403b35
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 0x40416f
mov ecx, dword [ebp + 0x10]
cmp ecx, dword [ebp + 0x50]
jne 0x40416f
mov ecx, dword [ebp + 0x14]
cmp ecx, dword [ebp + 0x54]
jne 0x40416f
mov ecx, dword [ebp + 0x18]
cmp ecx, dword [ebp + 0x58]
je 0x4041cf
mov dword [ebp - 0x10], eax
cmp eax, 0x40000080
jb 0x4041cf
jmp 0x40417e
mov eax, dword [ebp + 0xc]
xor ecx, ecx
cmp eax, ecx
jne 0x404193
cmp dword [ebp + 0x10], ecx
jne 0x404193
cmp dword [ebp + 0x14], ecx
jne 0x404193
cmp dword [ebp + 0x18], ecx
je 0x4041af
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push eax
push dword [ebp]
push 0x418a30
push 1
call fcn.00405790
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 0x40417b
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 0x404212
cmp ecx, dword [ebp + 0x50]
jne 0x404212
mov esi, dword [ebp + 0x54]
cmp ebx, esi
jne 0x40420f
cmp edx, dword [ebp + 0x58]
je 0x4052ac
mov ebx, dword [ebp + 0x14]
mov dword [ebp - 0x10], eax
cmp eax, 0x80000000
jb 0x4052ac
jmp 0x40422e
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 0x404253
test eax, eax
jne 0x404253
test ecx, ecx
jne 0x404253
test ebx, ebx
jne 0x404250
test edx, edx
je 0x405288
mov ebx, dword [ebp + 0x14]
mov esi, dword [ebp]
add esi, 0x80000000
cmp esi, 0x26
ja case.0x40426c.2147483639
movzx esi, byte [esi + 0x4055f0]
jmp dword [esi*4 + 0x405594]
push eax
push 0x418948
push 1
call fcn.00405790
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
add esp, 0xc
test eax, eax
jne 0x4042a4
test edx, edx
jne 0x4042a4
test ecx, ecx
jne 0x4042a4
push 0x30
push 0x4188e0
jmp 0x4044f0
mov dword [ebp + 0x5c], eax
lea eax, [ebp + 0x5c]
push eax
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x64], edx
push 0x418898
push 1
call fcn.00405790
add esp, 0xc
jmp 0x405288
push eax
push 0x4187d0
push 1
call fcn.00405790
mov esi, dword [ebp + 0xc]
add esp, 0xc
test esi, esi
jne 0x4042ef
push 0x13
push 0x4187a4
push 1
call fcn.00405910
jmp 0x4043d3
cmp dword [ebp + 0x5c], 0x756e6547
jne 0x404361
cmp dword [ebp + 0x60], 0x49656e69
jne 0x404413
cmp dword [ebp + 0x64], 0x6c65746e
jne 0x404413
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 0x4211b8
push 1
call fcn.00405790
add esp, 0x1c
jmp 0x4043d3
cmp dword [ebp + 0x5c], 0x68747541
jne 0x404413
cmp dword [ebp + 0x60], 0x69746e65
jne 0x404413
cmp dword [ebp + 0x64], 0x444d4163
jne 0x404413
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 0x4043b9
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 0x421128
push 1
call fcn.00405790
add esp, 0x18
cmp dword [ebp + 0x5c], 0x68747541
jne 0x404413
cmp dword [ebp + 0x60], 0x69746e65
jne 0x404413
cmp dword [ebp + 0x64], 0x444d4163
jne 0x404413
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 0x418730
inc ebx
push ebx
call fcn.00405790
add esp, 0x14
jmp 0x404427
push dword [ebp + 0x10]
xor ebx, ebx
push 0x41d3d0
inc ebx
push ebx
call fcn.00405790
add esp, 0xc
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 0x4186f4
push ebx
call fcn.00405790
add esp, 0x10
test dword [ebp + 0x14], 0x80144000
jne 0x40444d
test dword [ebp + 0x18], 0x10240400
je 0x40445a
push 0x30
push 0x420f90
push ebx
call fcn.00405910
mov esi, dword [ebp + 0x14]
mov edi, 0x7febbfff
test edi, esi
jne 0x404493
test dword [ebp + 0x18], 0xefdbfbff
jne 0x404493
push 8
push 0x420f78
push ebx
jmp 0x4044f2
push dword [eax*4 + 0x412fd0]
push 0x420f68
push ebx
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x404479
test dword [ebp + 0x14], edi
je 0x4044b3
test dword [ebp + 0x18], 0xefdbfbff
je 0x4044b3
push 2
push 0x420f60
push ebx
call fcn.00405910
mov esi, dword [ebp + 0x18]
jmp 0x4044d3
push dword [eax*4 + 0x413050]
push 0x420f68
push 1
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x4044b8
jmp 0x405288
push 0x40
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x20], ecx
mov dword [ebp + 0x24], ebx
mov dword [ebp + 0x28], edx
push 0x418670
push 1
call fcn.00405910
jmp 0x405288
push 0x3e
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x30], ecx
mov dword [ebp + 0x34], ebx
mov dword [ebp + 0x38], edx
push 0x4185f0
jmp 0x4044f0
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 0x418560
jmp 0x4042b6
push 0x59
push 0x4184a8
push 1
call fcn.00405910
cmp dword [ebp + 0x5c], 0x68747541
jne 0x4045b8
cmp dword [ebp + 0x60], 0x69746e65
jne 0x4045b8
cmp dword [ebp + 0x64], 0x444d4163
jne 0x4045b8
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 0x417e50
push 1
call fcn.00405790
add esp, 0x48
jmp 0x405288
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push 0x417dc0
push 1
call fcn.00405790
add esp, 0x18
jmp 0x405288
push 0x59
xor esi, esi
push 0x417d08
inc esi
push esi
call fcn.00405910
cmp dword [ebp + 0x5c], 0x756e6547
jne 0x404641
cmp dword [ebp + 0x60], 0x49656e69
jne 0x40470a
cmp dword [ebp + 0x64], 0x6c65746e
jne 0x40470a
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 + 0x413888]
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 0x417bc8
push esi
jmp 0x404911
cmp dword [ebp + 0x5c], 0x68747541
jne 0x40470a
cmp dword [ebp + 0x60], 0x69746e65
jne 0x40470a
cmp dword [ebp + 0x64], 0x444d4163
jne 0x40470a
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 + 0x413888]
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 + 0x413888]
mov edx, dword [ebp + 0x12]
and edx, edi
push edx
mov edx, eax
shr edx, 0xc
and edx, ecx
push dword [edx*4 + 0x413888]
and eax, edi
push eax
mov eax, dword [ebp + 0xc]
mov edx, eax
shr edx, 0x1c
push dword [edx*4 + 0x413888]
mov edx, dword [ebp + 0xe]
and edx, edi
push edx
mov edx, eax
shr edx, 0xc
and edx, ecx
push dword [edx*4 + 0x413888]
and eax, edi
push eax
push 0x417660
push esi
call fcn.00405790
add esp, 0x4c
jmp 0x405288
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push 0x417dc0
push esi
jmp 0x4045cb
push 0x4b
xor edi, edi
push 0x4175c8
inc edi
push edi
call fcn.00405910
cmp dword [ebp + 0x5c], 0x68747541
jne 0x4047dd
cmp dword [ebp + 0x60], 0x69746e65
jne 0x4047dd
cmp dword [ebp + 0x64], 0x444d4163
jne 0x4047dd
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 0x4174e8
push edi
call fcn.00405790
add esp, 0x18
test dword [ebp + 0x10], 0xffffffc0
je 0x40478e
push 0x3d
push 0x41dbf0
push edi
call fcn.00405910
test byte [ebp + 0x10], 0x3f
jne 0x4047a3
push 8
push 0x420f78
push edi
call fcn.00405910
jmp 0x4047ca
mov esi, dword [ebp + 0x10]
bsf eax, esi
je 0x4047ca
push dword [eax*4 + 0x4130d8]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x4047ab
push dword [ebp + 0x14]
push 0x4174b0
push edi
call fcn.00405790
add esp, 0xc
jmp 0x4047f4
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push 0x41b9a8
push edi
call fcn.00405790
add esp, 0x14
push dword [ebp + 0x18]
push 0x417484
push edi
call fcn.00405790
add esp, 0xc
test dword [ebp + 0x18], 0xffff0000
je 0x40481b
push 0x30
push 0x420f90
push edi
call fcn.00405910
mov esi, dword [ebp + 0x18]
test si, si
jne 0x40484b
push 8
push 0x420f78
push edi
jmp 0x4044f2
push dword [eax*4 + 0x413158]
push 0x420f68
push 1
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x404830
jmp 0x405288
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 0x4172f8
inc edi
push edi
call fcn.00405790
add esp, 0x1c
test dword [ebp + 0x10], 0x4008a0
je 0x40488f
push 0x30
push 0x420f90
push edi
call fcn.00405910
mov esi, dword [ebp + 0x10]
test esi, 0xffbff75f
jne 0x4048c3
push 8
push 0x420f78
push edi
call fcn.00405910
jmp 0x4048c8
push dword [eax*4 + 0x4131e0]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x4048a9
mov ebx, dword [ebp + 0x14]
mov ecx, ebx
shr ecx, 0xc
and ecx, 0xf
je 0x4048db
mov edx, edi
shl edx, cl
jmp 0x4048df
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 0x417188
push edi
call fcn.00405790
add esp, 0x24
jmp 0x405288
push edx
push ebx
push ecx
mov ecx, eax
shr ecx, 8
push ecx
movzx eax, al
push eax
push 0x417030
push 1
call fcn.00405790
add esp, 0x1c
test dword [ebp + 0x18], 0x80404000
je 0x404951
push 0x30
push 0x420f90
push 1
call fcn.00405910
mov esi, dword [ebp + 0x18]
test esi, 0x7fbfbfff
jne 0x404983
push 8
push 0x420f78
jmp 0x4044f0
push dword [eax*4 + 0x413260]
push 0x420f68
push 1
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x404968
jmp 0x405288
push edx
mov edx, ecx
push ebx
shr edx, 0x1c
push dword [edx*4 + 0x413888]
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 + 0x413888]
push ecx
mov ecx, eax
shr ecx, 0x1c
push dword [ecx*4 + 0x413888]
mov ecx, dword [ebp + 0xe]
and ecx, edi
push ecx
mov ecx, eax
shr ecx, 0xc
and ecx, 0xf
push dword [ecx*4 + 0x413888]
and eax, edi
push eax
push 0x416ce8
push 1
call fcn.00405790
add esp, 0x30
jmp 0x405288
push eax
xor edi, edi
push 0x416c28
inc edi
push edi
call fcn.00405790
add esp, 0xc
test dword [ebp + 0xc], 0xfffffff8
je 0x404a13
push 0x33
push 0x416bc0
push edi
call fcn.00405910
test byte [ebp + 0xc], 7
jne 0x404a28
push 8
push 0x420f78
push edi
call fcn.00405910
jmp 0x404a4f
mov esi, dword [ebp + 0xc]
bsf eax, esi
je 0x404a4f
push dword [eax*4 + 0x4132e8]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x404a30
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x41a720
push edi
call fcn.00405790
add esp, 0x14
jmp 0x405288
push eax
xor ebx, ebx
push 0x416b00
inc ebx
push ebx
call fcn.00405790
add esp, 0xc
test dword [ebp + 0xc], 0xfffff000
je 0x404a93
push 0x33
push 0x416bc0
push ebx
call fcn.00405910
mov esi, dword [ebp + 0xc]
test edi, esi
jne 0x404ac3
push 8
push 0x420f78
push ebx
call fcn.00405910
jmp 0x404ac8
push dword [eax*4 + 0x413368]
push 0x420f68
push ebx
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x404aa9
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x41a720
push ebx
jmp 0x404a5e
push eax
xor ebx, ebx
push 0x416a40
inc ebx
push ebx
call fcn.00405790
mov edi, 0x1fffff80
add esp, 0xc
test dword [ebp + 0xc], edi
je 0x404b02
push 0x3d
push 0x41dbf0
push ebx
call fcn.00405910
mov esi, dword [ebp + 0xc]
test esi, 0xe000007f
jne 0x404b36
push 8
push 0x420f78
push ebx
call fcn.00405910
jmp 0x404b3b
push dword [eax*4 + 0x4133f0]
push 0x420f68
push ebx
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x404b1c
mov eax, dword [ebp + 0x14]
mov edx, 0x420d4c
mov ecx, 0x420d50
mov dword [ebp - 4], edx
test eax, eax
js 0x404b52
mov dword [ebp - 4], ecx
mov dword [ebp - 8], edx
test eax, 0x40000000
jne 0x404b5f
mov dword [ebp - 8], ecx
mov esi, edx
test eax, 0x20000000
jne 0x404b6a
mov esi, ecx
test eax, 0x10000000
je 0x404b73
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 0x416708
push ebx
call fcn.00405790
add esp, 0x44
test dword [ebp + 0x18], edi
je 0x404be3
push 0x3d
push 0x41dbf0
push ebx
call fcn.00405910
mov esi, dword [ebp + 0x18]
test esi, 0xe000007f
je 0x40446f
jmp 0x404c0f
push dword [eax*4 + 0x4133f0]
push 0x420f68
push 1
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x404bf4
jmp 0x405288
and dword [ebp + 8], 0
mov esi, eax
and esi, 0x1f
je 0x405288
jmp 0x404c33
mov edx, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 4], 0x420d4c
test dl, 2
jne 0x404c46
mov dword [ebp - 4], 0x420d50
mov dword [ebp - 8], 0x420d50
test dl, 1
jne 0x404c59
mov dword [ebp - 8], 0x420d4c
mov dword [ebp - 0xc], 0x420d4c
test eax, 0x200
jne 0x404c6e
mov dword [ebp - 0xc], 0x420d50
mov edi, 0x420d4c
test eax, 0x100
jne 0x404c7f
mov edi, 0x420d50
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 + 0x413808]
push dword [ebp + 8]
push 0x4163e0
push 1
call fcn.00405790
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 0x404c2a
jmp 0x405288
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 0x4161b0
push 1
call fcn.00405790
add esp, 0x28
jmp 0x405288
push 0x6a
xor edi, edi
push 0x4160d8
inc edi
push edi
call fcn.00405910
cmp dword [ebp + 0x5c], 0x68747541
jne 0x404e16
cmp dword [ebp + 0x60], 0x69746e65
jne 0x404e16
cmp dword [ebp + 0x64], 0x444d4163
jne 0x404e16
push dword [ebp + 0xc]
push 0x4160a0
push edi
call fcn.00405790
add esp, 0xc
test dword [ebp + 0xc], 0xc00000
je 0x404da6
push 0x30
push 0x420f90
push edi
call fcn.00405910
mov esi, dword [ebp + 0xc]
test esi, 0xff3fffff
jne 0x404dda
push 8
push 0x420f78
push edi
call fcn.00405910
jmp 0x404ddf
push dword [eax*4 + 0x413470]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x404dc0
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 0x415ee8
push edi
call fcn.00405790
add esp, 0x20
jmp 0x405288
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push 0x415e38
push edi
jmp 0x4045cb
push ecx
push eax
xor edi, edi
push 0x415d60
inc edi
push edi
call fcn.00405790
add esp, 0x10
test dword [ebp + 0x10], 0xffffff81
je 0x404e56
push 0x30
push 0x420f90
push edi
call fcn.00405910
test byte [ebp + 0x10], 0x7e
jne 0x404e6b
push 8
push 0x420f78
push edi
call fcn.00405910
jmp 0x404e92
mov esi, dword [ebp + 0x10]
bsf eax, esi
je 0x404e92
push dword [eax*4 + 0x4134f8]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x404e73
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push 0x41e740
push edi
call fcn.00405790
mov eax, dword [ebp + 0x10]
and eax, 0xfffffffe
add esp, 0x10
mov dword [ebp + 4], eax
bsf eax, eax
jmp 0x40500f
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 ecx, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x10]
test edx, edx
jne 0x404eef
test ebx, ebx
jne 0x404eef
test ecx, ecx
jne 0x404eef
test edi, edi
je 0x405004
mov eax, dword [ebp + 8]
test eax, eax
je 0x404fef
cmp eax, 2
jbe 0x404fe2
cmp eax, 3
je 0x404f60
cmp eax, 5
jne 0x404fef
mov esi, 0x420d4c
test cl, 1
jne 0x404f20
mov esi, 0x420d50
mov eax, 0x420d4c
test edx, 0x100
jne 0x404f32
mov eax, 0x420d50
push edi
shr ecx, 0x1f
push ecx
movzx ecx, word [ebp + 0x12]
push esi
push ecx
movzx ecx, bx
push ecx
mov ecx, edx
shr ecx, 9
push ecx
push eax
movzx eax, dl
push eax
push 0x415b68
push 1
call fcn.00405790
add esp, 0x28
jmp 0x405004
push ecx
mov eax, ebx
shr eax, 8
push eax
movzx eax, bl
push eax
push edx
xor edi, edi
push 0x415a20
inc edi
push edi
call fcn.00405790
add esp, 0x18
test dword [ebp + 0x14], 0xffffff80
je 0x404f93
push 0x33
push 0x4159b8
push edi
call fcn.00405910
test byte [ebp + 0x14], 0x7f
jne 0x404fa8
push 8
push 0x420f78
push edi
call fcn.00405910
jmp 0x404fcf
mov esi, dword [ebp + 0x14]
bsf eax, esi
je 0x404fcf
push dword [eax*4 + 0x413578]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x404fb0
push dword [ebp + 0x18]
push 0x415988
push edi
call fcn.00405790
add esp, 0xc
jmp 0x405004
push edi
push ecx
push ebx
push edx
push eax
push eax
push 0x415828
jmp 0x404ffa
push edi
push ecx
push ebx
push edx
push eax
push eax
push 0x415710
push 1
call fcn.00405790
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 0x404eb7
jmp 0x405288
push eax
xor edi, edi
push 0x415660
inc edi
push edi
call fcn.00405790
add esp, 0xc
test dword [ebp + 0xc], 0x7f9d030
je 0x405045
push 0x30
push 0x420f90
push edi
call fcn.00405910
mov esi, dword [ebp + 0xc]
test esi, 0xf8062fcf
jne 0x405079
push 8
push 0x420f78
push edi
call fcn.00405910
jmp 0x40507e
push dword [eax*4 + 0x413600]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x40505f
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 0x4155b0
jmp 0x404e27
push eax
xor edi, edi
push 0x4154f0
inc edi
push edi
call fcn.00405790
add esp, 0xc
test dword [ebp + 0xc], 0xfffffff8
je 0x4050c8
push 0x30
push 0x420f90
push edi
call fcn.00405910
test byte [ebp + 0xc], 7
jne 0x4050dd
push 8
push 0x420f78
push edi
call fcn.00405910
jmp 0x405104
mov esi, dword [ebp + 0xc]
bsf eax, esi
je 0x405104
push dword [eax*4 + 0x413680]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x4050e5
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 0x4152d8
jmp 0x404910
push eax
xor ebx, ebx
push 0x415218
inc ebx
push ebx
call fcn.00405790
add esp, 0xc
test dword [ebp + 0xc], 0xfffffffe
je 0x405164
push 0x30
push 0x420f90
push ebx
call fcn.00405910
test byte [ebp + 0xc], bl
jne 0x405178
push 8
push 0x420f78
push ebx
call fcn.00405910
jmp 0x40519f
mov esi, dword [ebp + 0xc]
bsf eax, esi
je 0x40519f
push dword [eax*4 + 0x413708]
push 0x420f68
push ebx
call fcn.00405790
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x405180
push dword [ebp + 0x18]
movzx eax, word [ebp + 0x12]
push dword [ebp + 0x14]
push eax
movzx eax, word [ebp + 0x10]
push eax
push 0x415128
push ebx
jmp 0x4045cb
and dword [ebp + 8], 0
test bh, bh
je 0x405288
jmp 0x4051d1
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov esi, 0x420d4c
mov edi, 0x420d50
mov dword [ebp - 4], esi
test eax, eax
js 0x4051e5
mov dword [ebp - 4], edi
mov dword [ebp - 8], esi
test eax, 0x40000000
jne 0x4051f2
mov dword [ebp - 8], edi
test eax, 0x20000000
je 0x4051fb
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 0x414de8
push 1
call fcn.00405790
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 0x4051c8
jmp 0x405288
push edx
push ebx
push ecx
push eax
push dword [ebp]
push 0x414cd0
push 1
call fcn.00405790
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 0x404222
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 0x4052ea
cmp esi, dword [ebp + 0x50]
jne 0x4052ea
cmp edx, dword [ebp + 0x54]
jne 0x4052ea
cmp ecx, dword [ebp + 0x58]
je 0x4053d6
mov dword [ebp - 0x10], eax
cmp eax, 0xc0000000
jb 0x4053d6
mov edi, dword [ebp]
jmp 0x405309
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x40531d
test esi, esi
jne 0x40531d
test edx, edx
jne 0x40531d
test ecx, ecx
je 0x4053b5
push ecx
push edx
push esi
push eax
cmp edi, 0xc0000000
je 0x4053a6
cmp edi, 0xc0000001
je 0x405343
push edi
push 0x414bb8
push 1
call fcn.00405790
add esp, 0x1c
jmp 0x4053b5
push 0x414a88
push 1
call fcn.00405790
add esp, 0x18
test dword [ebp + 0x18], 0xffffc000
je 0x405369
push 0x30
push 0x420f90
push 1
call fcn.00405910
mov esi, dword [ebp + 0x18]
test esi, 0x3fff
jne 0x40539f
push 8
push 0x420f78
push 1
call fcn.00405910
jmp 0x4053b5
push dword [eax*4 + 0x413788]
push 0x420f68
push 1
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x405384
jmp 0x4053b5
push 0x414940
push 1
call fcn.00405790
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 0x4052fd
cmp dword [ebp - 0x24], 0
je 0x4054a6
xor ecx, ecx
xgetbv
push edx
push eax
xor edi, edi
push 0x414890
inc edi
push edi
mov dword [0x4220a0], eax
mov dword [0x4220a4], edx
call fcn.00405790
mov ecx, dword [0x4220a0]
mov edx, dword [0x4220a4]
mov eax, ecx
and eax, 0xfff00000
and edx, 0xbfffffff
add esp, 0x10
or eax, edx
je 0x405433
push 0x30
push 0x420f90
push edi
call fcn.00405910
mov ecx, dword [0x4220a0]
mov edx, dword [0x4220a4]
mov eax, ecx
and eax, 0xfffff
and edx, 0x40000000
or eax, edx
jne 0x405459
push 8
push 0x420f78
push edi
call fcn.00405910
jmp 0x40547f
bsf eax, ecx
mov esi, ecx
je 0x40547f
push dword [eax*4 + 0x411700]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
and esi, eax
add esp, 0xc
bsf eax, esi
jne 0x405460
mov esi, dword [0x4220a4]
jmp 0x4054a1
push dword [eax*4 + 0x411780]
push 0x420f68
push edi
call fcn.00405790
lea eax, [esi - 1]
add esp, 0xc
and esi, eax
bsf eax, esi
jne 0x405487
pop esi
mov ecx, dword [ebp + 0x68]
mov eax, dword [ebp - 0x1c]
pop edi
xor ecx, ebp
pop ebx
call fcn.00405690
add ebp, 0x6c
leave
ret