Function at 0x46c140
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x572208
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push ebp
push esi
push edi
mov eax, dword [0x668038]
xor eax, esp
push eax
lea eax, [esp + 0x34]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x44]
call fcn.00493a10
xor edx, edx
mov eax, ecx
and eax, 0x3000000
cmp eax, 0x3000000
sete dl
mov esi, edx
xor edx, edx
cmp eax, 0x2000000
sete dl
xor eax, eax
xor ebx, ebx
cmp esi, ebx
setne al
mov dword [esp + 0x2c], esi
mov dword [ebp + 0x99c], edx
push eax
push ecx
call fcn.00493a10
add esp, 8
lea ecx, [esp + 0x44]
mov eax, ebp
call fcn.0046be70
test eax, eax
jge 0x46c1c5
call fcn.00493a10
xor eax, eax
jmp 0x46c703
mov cl, byte [ebp + 0x60]
lea eax, [ebp + 0x60]
lea esi, [ebp + 0x9a0]
mov byte [esi], cl
cmp cl, bl
je 0x46c1eb
mov edx, esi
lea esp, [esp]
mov cl, byte [eax + 1]
inc eax
inc edx
mov byte [edx], cl
cmp cl, bl
jne 0x46c1e0
inc eax
lea ecx, [esp + 0x18]
mov dword [esp + 0x44], eax
call fcn.004992d0
mov dword [esp + 0x3c], ebx
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + 0x10]
lea ecx, [eax + 0x10]
mov eax, dword [edx + 0x10]
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x30]
call eax
mov edx, dword [eax]
mov edx, dword [edx + 0x18]
push esi
lea ecx, [esp + 0x1c]
push ecx
mov ecx, eax
call edx
push ebx
or edi, 0xffffffff
mov eax, str.:_____
lea esi, [esp + 0x24]
call fcn.004993c0
mov byte [esp + 0x3c], 1
mov eax, esi
push eax
lea eax, [esp + 0x1c]
call fcn.00408130
push eax
lea ecx, [esp + 0x24]
push ecx
call fcn.004ae540
add esp, 0xc
mov byte [esp + 0x3c], 2
lea edi, [esp + 0x18]
call fcn.00499530
mov byte [esp + 0x3c], 1
lea ecx, [esp + 0x1c]
call fcn.00499450
mov byte [esp + 0x3c], bl
mov ecx, esi
call fcn.00499450
lea edi, [ebp + 0xda0]
mov esi, edi
lea edx, [esp + 0x44]
call fcn.0046ce80
cmp al, 0x20
jne 0x46c31d
lea esi, [esp + 0x20]
call fcn.0046ce50
mov edx, dword [esp + 0x20]
mov dword [ebp + 0xda8], edx
mov dword [ebp + 0xdac], ebx
cmp al, 0x20
jne 0x46c31d
lea esi, [ebp + 0xdb0]
lea edx, [esp + 0x44]
call fcn.0046ce50
mov ecx, dword [esi]
push ecx
call fcn.00493a10
add esp, 4
cmp al, 0x20
jne 0x46c31d
lea esi, [esp + 0x20]
call fcn.0046ce50
mov edx, dword [esp + 0x20]
push edx
call fcn.00493a10
add esp, 4
cmp al, 0x20
jne 0x46c31d
lea esi, [esp + 0x20]
lea edx, [esp + 0x44]
call fcn.0046ce80
mov ecx, dword [esp + 0x20]
push ecx
call fcn.00493a10
add esp, 4
cmp al, 0x20
jne 0x46c31d
lea esi, [esp + 0x20]
call fcn.0046ce80
mov edx, dword [esp + 0x20]
push edx
call fcn.00493a10
add esp, 4
cmp al, bl
je 0x46c331
cmp al, 0x20
je 0x46c331
movzx eax, al
push eax
call fcn.00493a10
add esp, 4
mov eax, dword [ebp + 0xdc0]
add eax, 0xfffffffd
cmp eax, 0xa
ja case.0x46c346.5
movzx ecx, byte [eax + 0x46c728]
jmp dword [ecx*4 + 0x46c71c]
call fcn.00493a10
jmp 0x46c6ed
call fcn.00493a10
push 1
mov esi, ebp
call fcn.0046e710
jmp 0x46c6ed
push 8
push ebp
call fcn.0046e790
lea eax, [esp + 0x18]
lea esi, [esp + 0x44]
call fcn.004992f0
mov byte [esp + 0x3c], 3
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx]
call fcn.00408130
push eax
mov eax, dword [edx + 0x14]
call eax
mov byte [esp + 0x3c], bl
mov ecx, esi
call fcn.00499450
mov eax, dword [edi]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 0x10]
push eax
push ebx
push ebx
call edx
lea ecx, [esp + 0x44]
mov dword [ebp + 0xdb4], ebx
mov dword [ebp + 0xdb8], ebx
mov dword [ebp + 0x50], ebx
call fcn.004992d0
mov byte [esp + 0x3c], 4
jmp 0x46c3d0
mov ecx, dword [ebp + 0x18]
mov eax, dword [ecx]
mov edx, dword [eax + 0x78]
call edx
add eax, 0x990
je 0x46c3e6
add eax, 0xc
jmp 0x46c3e8
xor eax, eax
mov ecx, dword [ebp + 0x18]
mov edx, dword [ecx]
push eax
lea eax, [esp + 0x28]
push eax
mov eax, dword [edx + 0x78]
call eax
mov esi, eax
call fcn.0053d910
mov byte [esp + 0x3c], 5
lea edi, [esp + 0x44]
call fcn.00499530
mov byte [esp + 0x3c], 4
lea ecx, [esp + 0x24]
call fcn.00499450
mov eax, edi
call fcn.00499c00
cmp eax, ebx
jle 0x46c446
lea edi, [eax - 1]
lea eax, [esp + 0x44]
call fcn.0049a170
cmp word [eax], 0x5c
je 0x46c446
mov eax, 0x5c
lea ecx, [esp + 0x44]
call fcn.00499600
lea eax, [esp + 0x18]
lea esi, [esp + 0x28]
call fcn.004992f0
mov byte [esp + 0x3c], 6
push eax
lea edi, [esp + 0x48]
call fcn.00499570
mov byte [esp + 0x3c], 4
mov ecx, esi
call fcn.00499450
cmp dword [esp + 0x2c], ebx
je 0x46c496
mov edx, dword [ebp + 0x34]
push 2
lea ecx, [ebp + 0x34]
push 0x40000004
mov eax, edi
call fcn.00408130
push eax
mov eax, dword [edx + 4]
call eax
test al, al
jne 0x46c5dc
lea eax, [esp + 0x44]
call fcn.00408130
mov esi, eax
push esi
call fcn.00493a10
mov edx, dword [ebp + 0x34]
mov eax, dword [edx + 4]
add esp, 4
push 2
lea ecx, [ebp + 0x34]
push 0x40000000
push esi
call eax
test al, al
jne 0x46c612
lea ecx, [esp + 0x20]
call fcn.004992d0
mov byte [esp + 0x3c], 7
push esi
lea ecx, [esp + 0x24]
push str.Unable_to_open__1_for_writing
push ecx
call fcn.00499d40
add esp, 0xc
push ebx
push ebx
lea eax, [esp + 0x28]
call fcn.00408130
push eax
call sub.CommonUI67U.dll_int___cdecl_VMessageBox_wchar_t_const___unsigned_int__wchar_t_const__
add esp, 0xc
mov eax, ebp
call fcn.0046b370
test al, al
jne 0x46c6ad
mov ecx, dword [ebp + 0x18]
mov edx, dword [ecx]
mov eax, dword [edx + 0x78]
call eax
add eax, 0x990
je 0x46c51f
add eax, 0xc
jmp 0x46c521
xor eax, eax
mov ecx, dword [ebp + 0x18]
push eax
mov eax, dword [ecx]
lea edx, [esp + 0x20]
push edx
mov edx, dword [eax + 0x78]
call edx
mov esi, eax
call fcn.0053d910
mov byte [esp + 0x3c], 8
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx]
mov edx, dword [eax + 0x24]
call edx
lea edx, [esp + 0x1c]
mov ecx, eax
call fcn.004ae610
test al, al
je 0x46c6b4
mov eax, dword [ebp + 0x18]
mov esi, eax
lea eax, [esp + 0x1c]
call fcn.00408130
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x78]
mov ecx, esi
call eax
add eax, 0x99c
call fcn.00408130
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x78]
mov ecx, esi
call eax
mov esi, eax
call fcn.0053d9d0
test al, al
jne 0x46c5ac
mov ecx, dword [ebp + 0x18]
mov edx, dword [ecx]
mov eax, dword [edx + 0x78]
call eax
mov ecx, eax
add ecx, 0x990
lea eax, [esp + 0x1c]
call fcn.004080d0
mov eax, ebp
call fcn.0046b370
test al, al
jne 0x46c6bf
mov byte [esp + 0x3c], 7
lea ecx, [esp + 0x1c]
call fcn.00499450
mov byte [esp + 0x3c], 4
lea ecx, [esp + 0x20]
call fcn.00499450
jmp 0x46c3d0
lea ecx, [ebp + 0x34]
call fcn.0049e550
mov esi, dword [ebp + 0xda0]
mov ecx, dword [ebp + 0x14]
push esi
mov dword [ebp + 0xdb4], eax
mov dword [ebp + 0xdb8], eax
mov edx, dword [ecx]
push eax
push eax
mov eax, dword [edx + 0x10]
call eax
mov ecx, dword [ebp + 0xdb4]
push ecx
call fcn.00493a10
add esp, 4
mov dword [ebp + 0x50], 1
cmp dword [ebp + 0xda0], ebx
jbe 0x46c640
mov ecx, dword [ebp + 0xdb4]
mov eax, ebp
call fcn.0046df20
push 3
push ebp
call fcn.0046e790
call fcn.00493a10
jmp 0x46c6e0
mov edx, dword [ebp + 0xdac]
mov eax, dword [ebp + 0xda8]
push edx
push eax
lea esi, [ebp + 0x34]
push esi
call fcn.0046b390
add esp, 0xc
call fcn.0049e580
mov ecx, dword [ebp + 0x18]
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0xdb4], ebx
mov byte [ebp + 0x98b], 5
mov dword [ebp + 0x98c], ebx
mov edx, dword [ecx]
mov eax, dword [edx + 0x78]
call eax
add eax, 0x9e4
call fcn.00403be0
test al, al
je 0x46c697
or dword [ebp + 0x98c], 0x20000000
mov esi, ebp
call fcn.0046d060
push 5
push ebp
call fcn.0046e790
call fcn.00493a10
jmp 0x46c6e0
call fcn.00493a10
jmp 0x46c6d2
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x10]
lea ecx, [ebp + 0xc]
call eax
call fcn.00493a10
mov byte [esp + 0x3c], 7
lea ecx, [esp + 0x1c]
call fcn.00499450
mov byte [esp + 0x3c], 4
lea ecx, [esp + 0x20]
call fcn.00499450
mov byte [esp + 0x3c], bl
lea ecx, [esp + 0x44]
call fcn.00499450
mov dword [esp + 0x3c], 0xffffffff
lea ecx, [esp + 0x18]
call fcn.00499450
mov eax, 1
mov ecx, dword [esp + 0x34]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret 4