Function at 0x46c52c
Capabilities:
Delete file
Move file

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x33
push 0
push 0
dec ecx
jne 0x46c534
push ecx
push ebx
push esi
push edi
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x46d58c
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0x15], 0
mov byte [ebp - 0x1d], 0
lea eax, [ebp - 0xc]
call fcn.004046a4
mov byte [ebp - 0xf], 0
mov eax, dword [ebp + 8]
mov byte [eax - 0x66], 0
mov byte [ebp - 0x31], 0
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x118]
mov edx, dword [ebp - 8]
call fcn.00464d6c
mov edx, dword [0x466868]
call fcn.00403a50
mov edx, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x110]
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x110]
cmp dword [eax + 0x38], 0
je 0x46c679
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x158]
call fcn.00467d9c
test eax, eax
jbe 0x46c610
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x110]
call fcn.004671f8
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x10]
cmp eax, dword [edx + 0x12c]
je 0x46c610
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x110]
call fcn.004671f8
mov edx, eax
inc edx
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
call fcn.0046ef54
mov edx, dword [ebp + 8]
mov dword [edx - 0x38], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x110]
call fcn.00467090
push edx
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x38]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
lea edx, [eax + 0x138]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x38]
mov ecx, 0x1e
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
movzx eax, word [eax + 0x154]
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x10]
movzx edx, word [edx + 0x152]
add eax, edx
xor edx, edx
push edx
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x38]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x18]
push ebp
lea eax, [ebp - 0x16c]
call fcn.0046c34c
pop ecx
mov edx, dword [ebp - 0x16c]
lea eax, [ebp - 0x14]
call fcn.0040473c
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x110]
cmp dword [eax + 0x38], 0
jne 0x46c712
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
cmp byte [eax + 0x184], 0
jne 0x46c6e4
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
cmp byte [eax + 0x185], 0
jne 0x46c6e4
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
cmp byte [eax + 0x39], 0
je 0x46c6e4
mov eax, dword [ebp - 0x14]
call fcn.004665ec
test al, al
jne 0x46c6e4
mov eax, dword [ebp - 0x14]
call fcn.0046659c
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
cmp byte [eax + 0x50], 0
je 0x46c707
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x110]
mov edx, dword [eax + 0x28]
mov eax, dword [ebp - 0x14]
call fcn.00409274
mov eax, dword [ebp + 8]
inc dword [eax - 0x6c]
jmp 0x46d53e
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
cmp byte [eax + 0x184], 0
jne 0x46c74a
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
cmp byte [eax + 0x185], 0
jne 0x46c74a
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x110]
mov ecx, dword [eax + 0x38]
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0x14]
call fcn.004049b0
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
cmp word [eax + 0x7a], 0
je 0x46c774
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0xf]
push eax
mov eax, dword [ebp + 8]
mov ebx, dword [eax - 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [eax - 0x10]
mov ecx, dword [ebp - 8]
mov eax, dword [ebx + 0x7c]
call dword [ebx + 0x78]
cmp byte [ebp - 0xf], 0
jne 0x46d53e
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
cmp byte [eax + 0x184], 0
jne 0x46c7ca
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
cmp byte [eax + 0x185], 0
jne 0x46c7ca
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
cmp byte [eax + 0x104], 0
jne 0x46c7ca
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0xc]
call fcn.00409524
mov eax, dword [ebp - 0x14]
call fcn.004665ec
test al, al
jne 0x46c7ca
mov eax, dword [ebp - 0x14]
call fcn.0046659c
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x110]
call fcn.004677a4
test al, al
je 0x46c997
lea eax, [ebp - 0x1c]
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x10]
mov edx, dword [edx + 0x44]
call fcn.0040473c
jmp 0x46c980
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x110]
call fcn.004677ac
test al, al
je 0x46c827
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x110]
mov ax, word [eax + 0xc]
call fcn.0040748c
mov ebx, eax
jmp 0x46c842
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x110]
mov eax, dword [eax + 0x10]
call fcn.00407488
call fcn.0040748c
mov ebx, eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax - 0x38]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov edx, dword [eax + 0x44]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
call fcn.0046dbe8
mov byte [ebp - 0xd], al
cmp bl, byte [ebp - 0xd]
je 0x46c978
lea eax, [ebp - 0x1c]
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x10]
mov edx, dword [edx + 0x44]
call fcn.0040473c
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
cmp word [eax + 0x92], 0
je 0x46c90d
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [ebp + 8]
mov ebx, dword [eax - 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [eax - 0x10]
mov ecx, dword [ebp - 8]
mov eax, dword [ebx + 0x94]
call dword [ebx + 0x90]
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x10]
mov edx, dword [edx + 0x44]
call fcn.00404ab0
je 0x46c90d
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
add eax, 0x44
mov edx, dword [ebp - 0x1c]
call fcn.004046f8
push 0xffffffffffffffff
push 0xfffffffffffffff4
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x38]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x110]
call fcn.00467108
add eax, 0xc
adc edx, 0
push edx
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x110]
call fcn.00467140
jmp 0x46c980
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
cmp word [eax + 0xd2], 0
je 0x46c969
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov esi, dword [eax + 0x110]
mov ecx, dword [esi + 0x38]
mov eax, dword [ebp + 8]
mov edx, dword [esi + 0x3c]
lea eax, [ebp - 0x170]
call fcn.004049b0
mov eax, dword [ebp - 0x170]
push eax
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp + 8]
add eax, 0xffffff9b
push eax
mov eax, dword [ebp + 8]
mov ebx, dword [eax - 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [eax - 0x10]
xor ecx, ecx
mov eax, dword [ebx + 0xd4]
call dword [ebx + 0xd0]
mov eax, dword [ebp + 8]
push eax
call fcn.0046c304
pop ecx
jmp 0x46d53e
lea eax, [ebp - 0x1c]
call fcn.004046a4
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x10]
mov edx, dword [edx + 0x44]
call fcn.00404ab0
je 0x46c7f9
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x110]
call fcn.00467108
mov ecx, dword [ebp + 8]
mov dword [ecx - 0x30], eax
mov dword [ecx - 0x2c], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x110]
call fcn.00467180
mov ecx, dword [ebp + 8]
mov dword [ecx - 0x60], eax
mov dword [ecx - 0x5c], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov al, byte [eax + 0x184]
test al, al
jne 0x46cf1f
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x10]
cmp byte [edx + 0x185], 0
jne 0x46cf1f
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
cmp byte [eax + 0x3a], 1
je 0x46cd98
mov eax, dword [ebp - 0xc]
call fcn.004665e4
test al, al
je 0x46cd98
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov al, byte [eax + 0x3a]
test al, al
jne 0x46cb86
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
cmp word [eax + 0x8a], 0
je 0x46ca5f
mov byte [ebp - 0xe], 0
mov eax, dword [ebp - 8]
push eax
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebp + 8]
mov ebx, dword [eax - 0x10]
lea ecx, [ebp - 0xe]
mov eax, dword [ebp + 8]
mov edx, dword [eax - 0x10]
mov eax, dword [ebx + 0x8c]
call dword [ebx + 0x88]
jmp 0x46cb34
lea edx, [ebp - 0x178]
mov eax, 0xc3
call fcn.00408f04
push dword [ebp - 0x178]
lea ecx, [ebp - 0x17c]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov edx, dword [ebp - 8]
call fcn.0046e6ec
push dword [ebp - 0x17c]
push 0x46d5a4
lea eax, [ebp - 0x174]
mov edx, 3
call fcn.00404a24
mov edx, dword [ebp - 0x174]
lea eax, [ebp - 0x165]
call fcn.00409868
lea edx, [ebp - 0x180]
mov eax, 0xc4
call fcn.00408f04
mov edx, dword [ebp - 0x180]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
add eax, 0x16c
call fcn.004046f8
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
add eax, 0x16c
call fcn.004667d4
mov edx, eax
lea eax, [ebp - 0x184]
call fcn.0040489c
mov eax, dword [ebp - 0x184]
push eax
push 4
lea eax, [ebp - 0x188]
lea edx, [ebp - 0x165]
mov ecx, 0x12d
call fcn.00404914
mov ecx, dword [ebp - 0x188]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov edx, 0xc4
call fcn.00470118
cmp eax, 6
sete byte [ebp - 0xe]
cmp byte [ebp - 0xe], 0
jne 0x46cd98
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
cmp word [eax + 0xd2], 0
je 0x46cb77
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp + 8]
add eax, 0xffffff9b
push eax
mov eax, dword [ebp + 8]
mov ebx, dword [eax - 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [eax - 0x10]
mov cl, 1
mov eax, dword [ebx + 0xd4]
call dword [ebx + 0xd0]
mov eax, dword [ebp + 8]
push eax
call fcn.0046c304
pop ecx
jmp 0x46d53e
mov edx, dword [ebp + 8]
cmp al, 5
jne 0x46cc60
mov byte [ebp - 0xe], 0
lea eax, [ebp - 0x38]
mov edx, dword [ebp - 0xc]
call fcn.0040473c
mov eax, dword [ebp - 0x38]
call fcn.00409398
mov eax, dword [ebp - 0x38]
call fcn.004665e4
test al, al
je 0x46cc20
call fcn.00402ff8
push dword [ebp - 0x14]
push 0x46d5b0
mov eax, 0xffffff
call fcn.004032a8
lea ecx, [ebp - 0x18c]
mov edx, 8
call fcn.00408bc4
push dword [ebp - 0x18c]
push 0x46d5bc
lea eax, [ebp - 0x38]
mov edx, 4
call fcn.00404a24
mov eax, dword [ebp - 0x38]
call fcn.00404b64
mov ebx, eax
push ebx
mov eax, dword [ebp - 0xc]
call fcn.00404b64
push eax
call sub.kernel32.dll_MoveFileA
test eax, eax
je 0x46cbb9
mov byte [ebp - 0xe], 1
push 4
push 0
push ebx
call sub.kernel32.dll_MoveFileExA
jmp 0x46cc24
mov byte [ebp - 0xe], 1
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
cmp word [eax + 0x8a], 0
je 0x46cd98
mov eax, dword [ebp - 8]
push eax
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebp + 8]
mov ebx, dword [eax - 0x10]
lea ecx, [ebp - 0xe]
mov eax, dword [ebp + 8]
mov edx, dword [eax - 0x10]
mov eax, dword [ebx + 0x8c]
call dword [ebx + 0x88]
jmp 0x46cd98
mov edx, dword [ebp + 8]
cmp al, 2
jne 0x46ccaf
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
cmp word [eax + 0xd2], 0
je 0x46cca0
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp + 8]
add eax, 0xffffff9b
push eax
mov eax, dword [ebp + 8]
mov ebx, dword [eax - 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [eax - 0x10]
mov cl, 1
mov eax, dword [ebx + 0xd4]
call dword [ebx + 0xd0]
mov eax, dword [ebp + 8]
push eax
call fcn.0046c304
pop ecx
jmp 0x46d53e
mov eax, dword [ebp - 0xc]
call fcn.00409034
call fcn.00409748
fstp qword [ebp - 0x28]
wait
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
cmp byte [eax + 0x3a], 3
jne 0x46cd34
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x110]
mov eax, dword [eax + 0xc]
call fcn.00409748
fcomp qword [ebp - 0x28]
fnstsw ax
sahf
ja 0x46cd98
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
cmp word [eax + 0xd2], 0
je 0x46cd25
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp + 8]
add eax, 0xffffff9b
push eax
mov eax, dword [ebp + 8]
mov ebx, dword [eax - 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [eax - 0x10]
mov cl, 1
mov eax, dword [ebx + 0xd4]
call dword [ebx + 0xd0]
mov eax, dword [ebp + 8]
push eax
call fcn.0046c304
pop ecx
jmp 0x46d53e
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x110]
mov eax, dword [eax + 0xc]
call fcn.00409748
fcomp qword [ebp - 0x28]
fnstsw ax
sahf
jb 0x46cd98
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
cmp word [eax + 0xd2], 0
je 0x46cd89
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp + 8]
add eax, 0xffffff9b
push eax
mov eax, dword [ebp + 8]
mov ebx, dword [eax - 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [eax - 0x10]
mov cl, 1
mov eax, dword [ebx + 0xd4]
call dword [ebx + 0xd0]
mov eax, dword [ebp + 8]
push eax
call fcn.0046c304
pop ecx
jmp 0x46d53e
mov byte [ebp - 0x29], 0
mov byte [ebp - 0x2a], 1
xor edx, edx
push ebp
push 0x46ce20
push dword fs:[edx]
mov dword fs:[edx], esp
push 0xffff
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov al, byte [eax + 0x105]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x108]
push eax
mov ecx, dword [ebp - 0xc]
mov dl, 1
mov eax, dword [0x466114]
call fcn.004661a4
mov edx, dword [ebp + 8]
mov dword [edx - 0x14], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x110]
call fcn.00467180
push edx
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x14]
call fcn.0041a138
push 0
push 0
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x14]
call fcn.0041a0d4
mov byte [ebp - 0x29], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46cf10
cmp byte [ebp - 0x29], 0
je 0x46cda0
jmp 0x46d021
mov edx, dword [ebp + 8]
test al, al
je 0x46cf8a
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x180]
mov edx, dword [eax]
call dword [edx]
cmp edx, 0
jne 0x46cf64
cmp eax, 0
jne 0x46cf64
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x110]
call fcn.00467180
push edx
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x180]
call fcn.0041a138
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x180]
mov edx, dword [ebp + 8]
mov dword [edx - 0x14], eax
push 0
push 0
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x14]
call fcn.0041a0d4
jmp 0x46d021
mov byte [ebp - 0x1d], 0
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
cmp dword [eax + 0x188], 0
jne 0x46cfc3
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x110]
call fcn.00467180
call fcn.00402a84
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x10]
mov dword [edx + 0x188], eax
mov byte [ebp - 0x1d], 1
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x188]
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x10]
mov dword [edx + 0x1a0], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x110]
call fcn.00467180
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx - 0x10]
mov dword [ecx + 0x198], eax
mov dword [ecx + 0x19c], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x110]
call fcn.00467180
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx - 0x10]
mov dword [ecx + 0x190], eax
mov dword [ecx + 0x194], edx
xor eax, eax
push ebp
push 0x46d353
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x46d23f
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
mov word [eax - 0x42], 0
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax - 0x48], edx
mov eax, dword [ebp + 8]
mov dword [eax - 0x20], 0
mov dword [eax - 0x1c], 0
mov eax, dword [ebp + 8]
mov word [eax - 0x32], 0
mov eax, dword [ebp + 8]
mov word [eax - 6], 0
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x3c]
mov edx, dword [ebp + 8]
mov dword [edx - 0x24], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xc]
mov edx, dword [ebp + 8]
mov dword [edx - 4], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov dword [eax + 0x134], 0xffffffff
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x110]
call fcn.00467090
push edx
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x38]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
movzx eax, word [eax + 0x154]
add eax, 0x1e
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x10]
movzx edx, word [edx + 0x152]
add eax, edx
xor edx, edx
push edx
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x38]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x110]
call fcn.004677a4
test al, al
je 0x46d10f
push 0
push 0xc
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x38]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x110]
movzx eax, word [eax + 0xa]
cmp eax, 8
ja case.0x46d124.7
jmp dword [eax*4 + 0x46d12b]
mov eax, dword [ebp + 8]
push eax
call fcn.0046c0ac
pop ecx
jmp 0x46d231
mov eax, dword [ebp + 8]
push eax
call fcn.0046bf44
pop ecx
jmp 0x46d231
mov eax, dword [ebp + 8]
push eax
call fcn.0046bc64
pop ecx
jmp 0x46d231
mov eax, dword [ebp + 8]
push eax
call fcn.0046a974
pop ecx
jmp 0x46d231
mov eax, dword [ebp + 8]
push eax
call fcn.0046b794
pop ecx
jmp 0x46d231
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
cmp byte [eax + 0x104], 0
jne 0x46d231
lea edx, [ebp - 0x190]
mov eax, 0xc5
call fcn.00408f04
mov edx, dword [ebp - 0x190]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
add eax, 0x16c
call fcn.004046f8
lea edx, [ebp - 0x30]
mov eax, 0xc6
call fcn.00408f04
lea eax, [ebp - 0x30]
call fcn.004667d4
mov edx, eax
lea eax, [ebp - 0x194]
call fcn.0040489c
mov eax, dword [ebp - 0x194]
push eax
push 0
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
add eax, 0x16c
call fcn.004667d4
mov edx, eax
lea eax, [ebp - 0x198]
call fcn.0040489c
mov ecx, dword [ebp - 0x198]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov edx, 0xc5
call fcn.00470118
mov byte [ebp - 0x15], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46d26b
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46d35d
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
cmp byte [eax + 0x184], 0
jne 0x46d305
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
cmp byte [eax + 0x185], 0
jne 0x46d305
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x14]
call fcn.00403894
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax - 0x14], edx
cmp byte [ebp - 0x15], 0
je 0x46d305
mov edx, 0x41
mov eax, dword [ebp - 0xc]
call fcn.00408f18
mov ebx, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x110]
mov eax, dword [eax + 0xc]
call fcn.00466494
mov edx, eax
mov eax, ebx
call fcn.00409208
mov eax, ebx
call fcn.0040902c
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
cmp byte [eax + 0x50], 0
je 0x46d305
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x110]
mov edx, dword [eax + 0x28]
mov eax, dword [ebp - 0xc]
call fcn.00409274
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
cmp byte [eax + 0x185], 0
je 0x46d352
cmp byte [ebp - 0x15], 0
jne 0x46d352
cmp byte [ebp - 0x1d], 0
je 0x46d344
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x110]
call fcn.00467180
mov edx, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x188]
call fcn.00402ab4
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
xor edx, edx
mov dword [eax + 0x188], edx
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46d593
lea eax, [ebp - 0x19c]
mov edx, 0xd
call fcn.004046c8
lea eax, [ebp - 0x38]
call fcn.004046a4
lea eax, [ebp - 0x30]
call fcn.004046a4
lea eax, [ebp - 0x1c]
call fcn.004046a4
lea eax, [ebp - 0x14]
call fcn.004046a4
lea eax, [ebp - 0xc]
call fcn.004046a4
lea eax, [ebp - 4]
call fcn.004046a4
ret