Function at 0x408470
Capabilities:
Terminate process

Disassembly:
sub esp, 0x68
push ebx
push ebp
mov ebp, ecx
push esi
push edi
mov edi, dword [ebp + 0xc]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ecx
push 0x2c
mov dword [esp + 0x1c], edi
call fcn.00407400
add esp, 4
test eax, eax
je 0x4084a3
mov ecx, eax
call fcn.00403950
jmp 0x4084a5
xor eax, eax
mov ecx, dword [ebp + 0x20]
mov edx, dword [ebp + 8]
or ecx, 0x404
push ecx
push edx
mov ecx, eax
mov dword [ebp + 4], eax
call fcn.004039f0
test al, al
jne 0x4084d2
mov ecx, ebp
call fcn.00408930
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x68
ret
mov ecx, dword [ebp + 4]
mov dword [ebp + 0x18], 0
call fcn.00403ff0
mov ecx, dword [ebp + 4]
sub eax, 0x16
push eax
call fcn.00403eb0
test al, al
je 0x40856a
mov ecx, dword [ebp + 4]
push 4
lea eax, [esp + 0x14]
push eax
call fcn.00403cf0
test eax, eax
jne 0x408515
mov ecx, ebp
call fcn.00408930
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x68
ret
mov eax, dword [esp + 0x10]
cmp eax, 0x6054b50
je 0x408527
cmp eax, 0x6054552
jne 0x40856a
push 0x12
lea ecx, [esp + 0x20]
push ecx
mov ecx, dword [ebp + 4]
mov dword [ebp + 0x24], eax
call fcn.00403cf0
test eax, eax
jne 0x40854e
mov ecx, ebp
call fcn.00408930
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x68
ret
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x22]
and edx, 0xffff
cmp eax, 0xffffffff
mov ebx, eax
mov dword [ebp + 0x18], edx
jne 0x4086a4
mov ecx, dword [ebp + 4]
push 4
lea eax, [esp + 0x14]
push eax
call fcn.00403cf0
test eax, eax
jne 0x40858e
mov ecx, ebp
call fcn.00408930
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x68
ret
mov eax, dword [esp + 0x10]
cmp eax, 0x2014b50
je 0x408610
lea esp, [esp]
cmp eax, 0x4034b50
jne 0x4086e8
push 0x1a
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [ebp + 4]
call fcn.00403cf0
test eax, eax
je 0x4086f9
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x46]
mov ecx, dword [esp + 0x3e]
and edx, 0xffff
add ecx, edx
and eax, 0xffff
add eax, ecx
mov ecx, dword [ebp + 4]
push eax
call fcn.00403e90
test al, al
je 0x4086f9
mov ecx, dword [ebp + 4]
push 4
lea edx, [esp + 0x14]
push edx
call fcn.00403cf0
test eax, eax
je 0x4086f9
mov eax, dword [esp + 0x10]
cmp eax, 0x2014b50
jne 0x4085a0
mov ecx, dword [ebp + 4]
call fcn.00403fe0
mov ebx, eax
mov eax, dword [esp + 0x10]
sub ebx, 4
cmp eax, 0x6054b50
je 0x4086a4
cmp eax, 0x6054552
je 0x4086a4
cmp eax, 0x2014b50
jne 0x4086f9
mov eax, dword [ebp + 0x18]
push 0x2a
lea ecx, [esp + 0x50]
inc eax
push ecx
mov ecx, dword [ebp + 4]
mov dword [ebp + 0x18], eax
call fcn.00403cf0
test eax, eax
je 0x4086f9
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x66]
mov ecx, dword [esp + 0x64]
and eax, 0xffff
and edx, 0xffff
and ecx, 0xffff
add eax, edx
add eax, ecx
mov ecx, dword [ebp + 4]
push eax
call fcn.00403e90
test al, al
je 0x4086f9
mov ecx, dword [ebp + 4]
push 4
lea edx, [esp + 0x14]
push edx
call fcn.00403cf0
test eax, eax
je 0x4086f9
mov eax, dword [esp + 0x10]
cmp eax, 0x6054b50
jne 0x408628
mov esi, dword [ebp + 0x18]
lea eax, [esi + esi*2]
shl eax, 4
add eax, 4
push eax
call fcn.0041d330
add esp, 4
test eax, eax
je 0x40870a
lea ecx, [esi - 1]
test ecx, ecx
lea edx, [eax + 4]
mov dword [eax], esi
mov eax, edx
jl 0x4086e4
inc ecx
lea esp, [esp]
mov dword [eax], 0
mov byte [eax + 0x2e], 0
mov byte [eax + 0x2f], 0
add eax, 0x30
dec ecx
jne 0x4086d0
mov eax, edx
jmp 0x40870c
mov eax, dword [ebp + 8]
push str..EXE
push eax
call fcn.0041e390
add esp, 8
mov ecx, ebp
call fcn.00408930
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x68
ret
xor eax, eax
mov ecx, dword [ebp + 0x18]
shl ecx, 2
push ecx
mov dword [ebp + 0x10], eax
call fcn.0041d330
mov ecx, dword [ebp + 4]
add esp, 4
add ebx, 4
push ebx
mov dword [ebp + 0x14], eax
mov dword [esp + 0x14], 0x2014b50
call fcn.00403eb0
mov eax, dword [esp + 0x10]
xor ebx, ebx
cmp eax, 0x6054b50
mov dword [esp + 0x14], ebx
jne 0x4087b0
mov eax, dword [ebp + 0x18]
cmp eax, 1
mov byte [ebp], 1
jbe 0x408909
push 0x408460
push 0x30
push eax
mov eax, dword [ebp + 0x10]
push eax
call fcn.0041df24
mov ecx, dword [ebp + 0x18]
add esp, 0x10
xor eax, eax
test ecx, ecx
jbe 0x408781
mov ecx, dword [ebp + 0x14]
mov dword [ecx + eax*4], eax
mov ecx, dword [ebp + 0x18]
inc eax
cmp eax, ecx
jb 0x408773
mov edx, dword [ebp + 0x10]
push 0x408420
mov dword [0x431690], edx
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x14]
push 4
push eax
push ecx
call fcn.0041df24
add esp, 0x10
jmp 0x408914
mov edi, dword [esp + 0x18]
lea ebx, [ebx]
cmp eax, 0x6054552
je 0x408746
mov edx, dword [esp + 0x14]
cmp edx, dword [ebp + 0x18]
jae 0x408746
cmp eax, 0x2014b50
jne 0x4086f9
mov ecx, dword [ebp + 4]
push 0x2a
lea eax, [esp + 0x50]
push eax
call fcn.00403cf0
test eax, eax
je 0x4086f9
mov esi, dword [esp + 0x64]
and esi, 0xffff
add esi, edi
lea ecx, [esi + 1]
push ecx
call fcn.0041d330
mov edx, dword [ebp + 0x10]
mov dword [ebx + edx], eax
mov ecx, dword [ebp + 0xc]
add esp, 4
test ecx, ecx
je 0x40881b
test edi, edi
jbe 0x40881b
mov eax, dword [ebp + 0x10]
mov edx, dword [ebx + eax]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x408811
mov ecx, dword [esp + 0x64]
mov edx, dword [ebp + 0x10]
mov eax, dword [ebx + edx]
and ecx, 0xffff
push ecx
mov ecx, dword [ebp + 4]
add eax, edi
push eax
call fcn.00403cf0
mov ecx, dword [esp + 0x64]
and ecx, 0xffff
cmp eax, ecx
jne 0x4086f9
cmp word [esp + 0x52], 0
jne 0x4088cc
mov edx, dword [ebp + 0x10]
mov eax, dword [ebx + edx]
mov byte [esi + eax], 0
mov ecx, dword [ebp + 0x10]
lea edi, [ebx + ecx + 4]
mov ecx, 0xa
lea esi, [esp + 0x4c]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x66]
mov ecx, dword [ebp + 4]
and eax, 0xffff
and edx, 0xffff
add eax, edx
push eax
call fcn.00403e90
test al, al
je 0x4086f9
mov ecx, dword [ebp + 4]
push 4
lea eax, [esp + 0x14]
push eax
call fcn.00403cf0
test eax, eax
je 0x4086f9
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
inc esi
add ebx, 0x30
cmp eax, 0x6054b50
mov dword [esp + 0x14], esi
jne 0x4087a6
jmp 0x408746
lea ecx, [esp + 0x14]
call fcn.00404b30
mov ecx, dword [ebp + 8]
push ecx
lea edx, [esp + 0x18]
push str._s_has_been_created_using_an_unsupported_type_of_compression.__All_zip_archives_must_be_created_with_compression_set_to_none_or_a_type_of_compression_supported_by_the_game_engine.
push edx
call fcn.004054f0
add esp, 0xc
lea ecx, [esp + 0x14]
call fcn.00406280
push eax
push 0x42bce0
call fcn.00406f10
add esp, 8
push 0xffffffffffffffff
call fcn.0041d3e8
jne 0x408914
mov edx, dword [ebp + 0x14]
mov dword [edx], 0
mov al, byte [ebp + 2]
test al, al
jne 0x408923
mov ecx, dword [ebp + 4]
mov eax, dword [ecx]
call dword [eax + 4]
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x68
ret