Function at 0x40a170
Capabilities:
Terminate process

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42c6e0
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x1d8
mov eax, dword [0x43d054]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edx, dword [ebx + 0x10]
mov ecx, edx
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40a1d5
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x40]
call fcn.00402ed0
push 0xa8
lea eax, [ebp - 0x100]
mov dword [ebp - 0x28], 0
push 0
push eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
call fcn.00411410
add esp, 8
mov dword [ebp - 0x100], 0x439d14
lea eax, [ebp - 0xf0]
mov dword [ebp - 0x98], 0
xorps xmm0, xmm0
mov dword [ebp - 0x78], 0
lea ecx, [ebp - 0xa0]
mov dword [ebp - 0x74], 0
push eax
mov dword [ebp - 0x70], 0
mov dword [ebp - 0xa0], 0x439cd0
mov dword [ebp - 0xa4], 0x48
movlpd qword [ebp - 0xf8], xmm0
call fcn.0040ce80
mov eax, dword [ebp - 0x100]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x100], str.UY_
mov eax, dword [ebp - 0x100]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x60]
mov dword [ebp + ecx - 0x104], eax
lea ecx, [ebp - 0xf0]
call fcn.0040cdb0
cmp dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x40]
mov esi, dword [ebp - 0x30]
cmovae eax, dword [ebp - 0x40]
mov dword [ebp - 0x1c], eax
mov eax, 2
mov dword [ebp - 0xf0], 0x439c68
cmp esi, 0x7fffffff
ja 0x40a951
test esi, esi
je 0x40a33e
cmp esi, 0x1000
jb 0x40a2fe
lea eax, [esi + 0x23]
cmp eax, esi
jbe 0x40a956
push eax
call fcn.0040f6df
add esp, 4
test eax, eax
je 0x40a9a5
lea edi, [eax + 0x23]
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x40a309
push esi
call fcn.0040f6df
add esp, 4
mov edi, eax
push esi
push dword [ebp - 0x1c]
push edi
call fcn.00410dd0
mov eax, dword [ebp - 0xe4]
lea ecx, [esi + edi]
mov dword [ebp - 0xb8], ecx
add esp, 0xc
mov dword [eax], edi
mov eax, dword [ebp - 0xd4]
mov dword [eax], edi
mov eax, dword [ebp - 0xc4]
mov dword [eax], esi
mov eax, 3
jmp 0x40a348
mov dword [ebp - 0xb8], 0
push ecx
lea edx, [ebp - 0x58]
mov dword [ebp - 0xb4], eax
lea ecx, [ebp - 0x100]
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0xf
call fcn.0040e020
add esp, 4
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
test byte [ecx + eax + 0xc], 6
jne 0x40a3c1
mov eax, dword [ebp - 0x24]
lea ecx, [ebp - 0x58]
push ecx
cmp eax, dword [ebp - 0x20]
je 0x40a39a
mov ecx, eax
call fcn.0040c610
add dword [ebp - 0x24], 0x18
jmp 0x40a3a3
push eax
lea ecx, [ebp - 0x28]
call fcn.0040d940
push ecx
lea edx, [ebp - 0x58]
lea ecx, [ebp - 0x100]
call fcn.0040e020
add esp, 4
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
test byte [ecx + eax + 0xc], 6
je 0x40a381
mov ecx, dword [ebp - 0x24]
mov eax, 0x2aaaaaab
sub ecx, dword [ebp - 0x28]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x40a95b
mov eax, dword fs:[0x2c]
mov dword [ebp - 0x1c], 0x2e45464d
mov edi, dword [eax]
mov eax, dword [0x43ed98]
cmp eax, dword [edi + 4]
jle 0x40a432
push 0x43ed98
call fcn.0040f858
add esp, 4
cmp dword [0x43ed98], 0xffffffff
jne 0x40a432
mov eax, dword [ebp - 0x1c]
push 0x42d090
mov dword [0x43eedc], eax
call fcn.0040fb6a
add esp, 4
push 0x43ed98
call fcn.0040f80e
add esp, 4
mov al, byte [0x43eedf]
test al, al
je 0x40a457
xor byte [0x43eedc], 0x2e
xor byte [0x43eedd], 0x2e
xor byte [0x43eede], 0x2e
xor al, 0x2e
mov byte [0x43eedf], al
mov ecx, 0x43eedc
mov dword [ebp - 0x1e4], 0
mov dword [ebp - 0x1d4], 0
mov dword [ebp - 0x1d0], 0xf
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40a480
sub ecx, edx
push ecx
push 0x43eedc
lea ecx, [ebp - 0x1e4]
call fcn.00402ed0
mov esi, dword [ebp - 0x28]
lea edx, [ebp - 0x1e4]
mov ecx, esi
mov dword [ebp - 0x1c], 5
call fcn.0040d380
test al, al
jne 0x40a5ad
mov eax, dword [0x43ef1c]
mov dword [ebp - 0x1c], 0x45464d01
mov byte [ebp - 0x1b1], 0x2e
cmp eax, dword [edi + 4]
jle 0x40a517
push 0x43ef1c
call fcn.0040f858
add esp, 4
cmp dword [0x43ef1c], 0xffffffff
jne 0x40a517
mov eax, dword [ebp - 0x1c]
mov dword [0x43ed90], eax
mov al, byte [ebp - 0x1b1]
push 0x42d070
mov byte [0x43ed94], al
call fcn.0040fb6a
add esp, 4
push 0x43ef1c
call fcn.0040f80e
add esp, 4
mov al, byte [0x43ed94]
test al, al
je 0x40a543
xor byte [0x43ed90], 0x2e
xor byte [0x43ed91], 0x2e
xor byte [0x43ed92], 0x2e
xor byte [0x43ed93], 0x2e
xor al, 0x2e
mov byte [0x43ed94], al
mov ecx, 0x43ed90
mov dword [ebp - 0x1cc], 0
mov dword [ebp - 0x1bc], 0
mov dword [ebp - 0x1b8], 0xf
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40a570
sub ecx, edx
push ecx
push 0x43ed90
lea ecx, [ebp - 0x1cc]
call fcn.00402ed0
mov esi, dword [ebp - 0x28]
lea edx, [ebp - 0x1cc]
mov ecx, esi
mov dword [ebp - 0x1c], 7
call fcn.0040d380
test al, al
jne 0x40a5ad
mov byte [ebp - 0x1b1], al
jmp 0x40a5ba
test byte [ebp - 0x1c], 2
mov byte [ebp - 0x1b1], 1
je 0x40a5f7
mov edx, dword [ebp - 0x1b8]
cmp edx, 0x10
jb 0x40a5f7
mov ecx, dword [ebp - 0x1cc]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a5ea
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a9a5
push edx
push ecx
call fcn.0040f70f
mov esi, dword [ebp - 0x28]
add esp, 8
mov edx, dword [ebp - 0x1d0]
cmp edx, 0x10
jb 0x40a634
mov ecx, dword [ebp - 0x1e4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a627
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a9a5
push edx
push ecx
call fcn.0040f70f
mov esi, dword [ebp - 0x28]
add esp, 8
cmp byte [ebp - 0x1b1], 0
jne 0x40a960
mov ecx, dword [ebp - 0x24]
mov eax, 0x2aaaaaab
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
jne 0x40a8c1
mov eax, dword [0x43efa8]
mov dword [ebp - 0x1c], 0x7b7d6160
mov word [ebp - 0x18], 0x2e6c
cmp eax, dword [edi + 4]
jle 0x40a6bc
push 0x43efa8
call fcn.0040f858
add esp, 4
cmp dword [0x43efa8], 0xffffffff
jne 0x40a6bc
mov eax, dword [ebp - 0x1c]
mov dword [0x43eddc], eax
mov ax, word [ebp - 0x18]
push 0x42d040
mov word [0x43ede0], ax
call fcn.0040fb6a
add esp, 4
push 0x43efa8
call fcn.0040f80e
add esp, 4
mov al, byte [0x43ede1]
test al, al
je 0x40a6ef
xor byte [0x43eddc], 0x2e
xor byte [0x43eddd], 0x2e
xor byte [0x43edde], 0x2e
xor byte [0x43eddf], 0x2e
xor byte [0x43ede0], 0x2e
xor al, 0x2e
mov byte [0x43ede1], al
mov ecx, 0x43eddc
mov dword [ebp - 0x1cc], 0
mov dword [ebp - 0x1bc], 0
mov dword [ebp - 0x1b8], 0xf
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40a715
sub ecx, edx
push ecx
push 0x43eddc
lea ecx, [ebp - 0x1cc]
call fcn.00402ed0
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x20]
je 0x40a86e
movups xmm0, xmmword [ebp - 0x1cc]
mov dword [eax], 0
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x1bc]
movq qword [eax + 0x10], xmm0
add dword [ebp - 0x24], 0x18
mov esi, dword [ebp - 0x28]
sub esp, 0x18
lea eax, [esi + 0x18]
mov ecx, esp
push eax
call fcn.0040c610
sub esp, 0x18
mov ecx, esp
push esi
call fcn.0040c610
call fcn.00408ab0
mov edx, dword [ebp - 0x44]
add esp, 0x30
cmp edx, 0x10
jb 0x40a7b4
mov ecx, dword [ebp - 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a7aa
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a9a5
push edx
push ecx
call fcn.0040f70f
add esp, 8
mov eax, dword [ebp - 0x100]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x100], str.UY_
mov eax, dword [ebp - 0x100]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x60]
mov dword [ebp + ecx - 0x104], eax
lea ecx, [ebp - 0xf0]
call fcn.0040afb0
mov eax, dword [ebp - 0x100]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x100], 0x439cd0
mov eax, dword [ebp - 0x100]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x18]
mov dword [ebp + ecx - 0x104], eax
lea eax, [ebp - 0xa0]
mov dword [ebp - 4], 0
push eax
mov dword [ebp - 0xa0], str.Mk:UG
call fcn.0040ede3
add esp, 4
lea ecx, [ebp - 0x28]
call fcn.0040c300
mov eax, dword [ebp - 0x2c]
cmp eax, 0x10
jb 0x40a931
mov edx, dword [ebp - 0x40]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x40a927
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a9a5
jmp 0x40a927
lea ecx, [ebp - 0x1cc]
push ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.0040d760
mov edx, dword [ebp - 0x1b8]
cmp edx, 0x10
jb 0x40a75c
mov ecx, dword [ebp - 0x1cc]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a8b2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a9a5
push edx
push ecx
call fcn.0040f70f
add esp, 8
jmp 0x40a75c
cmp eax, 3
jne 0x40a75f
cmp dword [esi + 0x14], 0x10
mov ecx, esi
jb 0x40a8d4
mov ecx, dword [esi]
cmp dword [esi + 0x10], 2
jne 0x40a75f
movzx eax, byte [ecx]
cmp al, 0x72
jne 0x40a8f1
movzx eax, byte [ecx + 1]
cmp al, 0x72
jne 0x40a8f1
xor eax, eax
jmp 0x40a8f6
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40a75f
call fcn.00405b40
test al, al
je 0x40a9aa
mov esi, dword [0x42e07c]
push 0xbb8
call esi
call fcn.00405b40
test al, al
je 0x40a9aa
jmp 0x40a911
push ecx
push edx
call fcn.0040f70f
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0040f4cf
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x10
call fcn.0040e909
call fcn.004021b0
call fcn.00406280
push ecx
lea ecx, [ebp - 0x1b0]
call fcn.0040a150
sub esp, 0xc
call fcn.0040aa00
mov ecx, eax
call fcn.0040c240
push eax
lea ecx, [ebp - 0x1e4]
call fcn.00402d30
push eax
lea ecx, [ebp - 0x1b0]
call fcn.0040bf80
lea ecx, [ebp - 0x1e4]
call fcn.00402ce0
push 0
call fcn.0041859d
call fcn.00413e37
sub esp, 0x18
lea ecx, [ebp - 0x28]
mov esi, esp
push 1
call fcn.0040c2e0
push eax
mov ecx, esi
call fcn.0040c610
sub esp, 0x18
mov ecx, esp
push 0x43ed44
call fcn.0040c610
sub esp, 0x18
mov ecx, esp
push 0x43ed5c
call fcn.0040c610
xor dl, dl
xor cl, cl
call fcn.00408110
add esp, 0x48
call fcn.00406280
int3