Function at 0x46dfc0
Capabilities:
Create directory
Set current directory
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2ac
mov eax, dword [0x52382c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x526804]
cmp eax, 1
je 0x46dff7
cmp eax, 2
je 0x46dff7
cmp eax, 3
je 0x46dff7
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004ccd49
mov esp, ebp
pop ebp
ret
push ebx
push esi
push edi
push 0x525258
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
xor edi, edi
push edi
push str.ScreenShot
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov esi, 1
xor ebx, ebx
lea ebx, [ebx]
push esi
push 0x525258
lea eax, [ebp - 0x204]
push str._sScreenShotBEO_3d.bmp
push eax
call fcn.004cce8a
lea ecx, [ebp - 0x204]
push 0x4e4714
push ecx
call fcn.004cdd4a
add esp, 0x18
cmp eax, edi
jne 0x46e053
mov ebx, esi
jmp 0x46e05c
push eax
call fcn.004cda49
add esp, 4
inc esi
cmp esi, 0x2710
jge 0x46e0a3
cmp ebx, edi
je 0x46e020
lea edx, [ebp - 0x204]
push 0x4e6b68
push edx
call fcn.004cdd4a
mov esi, eax
add esp, 8
cmp esi, edi
jne 0x46e0c7
push str.CapScreen_Error__File_Create_Failed__
call fcn.0040b000
add esp, 4
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004ccd49
mov esp, ebp
pop ebp
ret
cmp ebx, edi
jne 0x46e069
push str.CapScreen_Error__No_Empty_File_List__
call fcn.0040b000
add esp, 4
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004ccd49
mov esp, ebp
pop ebp
ret
mov eax, dword [0x633870]
mov ecx, dword [eax]
lea edx, [ebp - 0x298]
push edx
push eax
mov eax, dword [ecx + 0x80]
call eax
test eax, eax
je 0x46e0fe
push esi
call fcn.004cda49
add esp, 4
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004ccd49
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x298]
mov ecx, dword [eax]
lea edx, [ebp - 0x27c]
push edx
push eax
mov eax, dword [ecx + 0x20]
call eax
mov edx, dword [ebp - 0x27c]
mov eax, dword [ebp - 0x260]
lea ecx, [ebp - 0x294]
push ecx
mov ecx, dword [ebp - 0x264]
push 2
push edx
mov edx, dword [0x633870]
push edi
push 1
push eax
push ecx
push edx
call fcn.004a6a43
mov eax, dword [ebp - 0x294]
mov ecx, dword [eax]
lea edx, [ebp - 0x2a4]
push edx
push edi
push eax
mov eax, dword [ecx + 0x3c]
call eax
mov edx, dword [0x526848]
mov ecx, dword [0x525378]
mov eax, dword [0x633870]
mov dword [ebp - 0x240], edx
lea edx, [ebp - 0x2ac]
push edx
mov edx, dword [ebp - 0x2a4]
push edx
push 1
lea edx, [ebp - 0x24c]
push edx
mov edx, dword [ebp - 0x298]
mov dword [ebp - 0x24c], edi
mov dword [ebp - 0x248], edi
mov dword [ebp - 0x244], ecx
mov dword [ebp - 0x2ac], edi
mov dword [ebp - 0x2a8], edi
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x70]
call eax
mov eax, dword [ebp - 0x2a4]
cmp eax, edi
je 0x46e1c9
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 0x2a4], edi
mov eax, dword [ebp - 0x298]
cmp eax, edi
je 0x46e1e1
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 0x298], edi
mov eax, dword [ebp - 0x294]
push 0x10
lea edx, [ebp - 0x25c]
push edx
lea edx, [ebp - 0x2a0]
push edx
mov dword [ebp - 0x2a0], edi
mov dword [ebp - 0x29c], edi
mov dword [ebp - 0x25c], edi
mov dword [ebp - 0x258], edi
mov dword [ebp - 0x254], 0x31f
mov dword [ebp - 0x250], 0x257
mov ecx, dword [eax]
push edi
push eax
mov eax, dword [ecx + 0x40]
call eax
test eax, eax
je 0x46e25e
push esi
call fcn.004cda49
mov eax, dword [ebp - 0x294]
add esp, 4
cmp eax, edi
je 0x46e24b
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004ccd49
mov esp, ebp
pop ebp
ret
mov eax, dword [0x526804]
cmp eax, 1
jne 0x46e47e
mov eax, dword [ebp - 0x29c]
mov dword [ebp - 0x284], eax
mov eax, dword [ebp - 0x2a0]
cdq
sub eax, edx
mov edx, dword [0x526b7c]
mov ebx, eax
xor eax, eax
mov dword [ebp - 0x214], eax
mov dword [ebp - 0x210], eax
mov dword [ebp - 0x20c], eax
mov word [ebp - 0x208], ax
mov ecx, 0x4d42
mov word [ebp - 0x214], cx
mov ecx, dword [0x5269e8]
mov eax, ecx
imul eax, edx
lea eax, [eax + eax*2 + 0x36]
mov dword [ebp - 0x212], eax
xor eax, eax
push esi
mov dword [ebp - 0x23c], eax
mov dword [ebp - 0x238], eax
mov dword [ebp - 0x234], eax
mov dword [ebp - 0x230], eax
mov dword [ebp - 0x22c], eax
push 1
mov dword [ebp - 0x228], eax
mov dword [ebp - 0x224], eax
mov dword [ebp - 0x220], eax
mov dword [ebp - 0x21c], eax
mov dword [ebp - 0x218], eax
lea eax, [ebp - 0x214]
push 0xe
push eax
sar ebx, 1
mov dword [ebp - 0x20a], 0x36
mov dword [ebp - 0x23c], 0x28
mov dword [ebp - 0x238], edx
mov dword [ebp - 0x234], ecx
mov dword [ebp - 0x230], 0x180001
mov dword [ebp - 0x22c], edi
call fcn.004cdc14
push esi
push 1
lea ecx, [ebp - 0x23c]
push 0x28
push ecx
call fcn.004cdc14
mov eax, dword [0x5269e8]
dec eax
add esp, 0x20
mov dword [ebp - 0x28c], eax
cmp eax, edi
jl 0x46e865
mov ecx, dword [ebp - 0x284]
mov edx, ebx
neg edx
add edx, edx
imul ebx, eax
lea ebx, [ecx + ebx*2]
mov ecx, dword [0x526b7c]
mov dword [ebp - 0x290], edx
mov dword [ebp - 0x288], ebx
test ecx, ecx
jle 0x46e45a
mov dword [ebp - 0x284], ebx
mov edx, dword [ebp - 0x284]
movzx ebx, word [edx]
movzx ecx, word [0x526b88]
mov eax, ebx
and ax, word [0x526a5c]
push esi
shr ax, cl
push 1
lea ecx, [ebp - 0x27d]
push 1
add al, al
add al, al
add al, al
push ecx
mov byte [ebp - 0x27d], al
call fcn.004cdc14
movzx ecx, word [0x524d40]
mov edx, ebx
and dx, word [0x5256c4]
push esi
shr dx, cl
push 1
lea eax, [ebp - 0x27d]
push 1
add dl, dl
add dl, dl
push eax
mov byte [ebp - 0x27d], dl
call fcn.004cdc14
and bx, word [0x526914]
movzx ecx, word [0x526a10]
shr bx, cl
push esi
push 1
lea ecx, [ebp - 0x27d]
add bl, bl
add bl, bl
push 1
add bl, bl
push ecx
mov byte [ebp - 0x27d], bl
call fcn.004cdc14
mov ecx, dword [0x526b7c]
add dword [ebp - 0x284], 2
inc edi
add esp, 0x30
cmp edi, ecx
jl 0x46e3a0
mov edx, dword [ebp - 0x290]
mov eax, dword [ebp - 0x28c]
mov ebx, dword [ebp - 0x288]
dec eax
add ebx, edx
xor edi, edi
mov dword [ebp - 0x28c], eax
mov dword [ebp - 0x288], ebx
test eax, eax
jns 0x46e392
jmp 0x46e865
mov edx, dword [ebp - 0x29c]
mov ecx, dword [0x5269e8]
cmp eax, 2
mov eax, dword [ebp - 0x2a0]
jne 0x46e6a0
mov dword [ebp - 0x284], edx
cdq
sub eax, edx
mov edx, dword [0x526b7c]
mov ebx, eax
xor eax, eax
mov dword [ebp - 0x214], eax
mov dword [ebp - 0x210], eax
mov dword [ebp - 0x20c], eax
mov word [ebp - 0x208], ax
mov eax, 0x4d42
mov word [ebp - 0x214], ax
mov eax, ecx
imul eax, edx
lea eax, [eax + eax*2 + 0x36]
mov dword [ebp - 0x212], eax
xor eax, eax
push esi
mov dword [ebp - 0x23c], eax
mov dword [ebp - 0x238], eax
mov dword [ebp - 0x234], eax
mov dword [ebp - 0x230], eax
mov dword [ebp - 0x22c], eax
push 1
mov dword [ebp - 0x228], eax
mov dword [ebp - 0x224], eax
mov dword [ebp - 0x220], eax
mov dword [ebp - 0x21c], eax
mov dword [ebp - 0x218], eax
lea eax, [ebp - 0x214]
push 0xe
push eax
sar ebx, 1
mov dword [ebp - 0x20a], 0x36
mov dword [ebp - 0x23c], 0x28
mov dword [ebp - 0x238], edx
mov dword [ebp - 0x234], ecx
mov dword [ebp - 0x230], 0x180001
mov dword [ebp - 0x22c], edi
call fcn.004cdc14
push esi
push 1
lea ecx, [ebp - 0x23c]
push 0x28
push ecx
call fcn.004cdc14
mov eax, dword [0x5269e8]
dec eax
add esp, 0x20
mov dword [ebp - 0x28c], eax
cmp eax, edi
jl 0x46e865
mov ecx, dword [ebp - 0x284]
mov edx, ebx
neg edx
add edx, edx
imul ebx, eax
lea ebx, [ecx + ebx*2]
mov ecx, dword [0x526b7c]
mov dword [ebp - 0x290], edx
mov dword [ebp - 0x288], ebx
lea ecx, [ecx]
test ecx, ecx
jle 0x46e67c
mov dword [ebp - 0x284], ebx
mov edi, edi
mov edx, dword [ebp - 0x284]
movzx ebx, word [edx]
movzx ecx, word [0x526b88]
mov eax, ebx
and ax, word [0x526a5c]
push esi
shr ax, cl
push 1
lea ecx, [ebp - 0x27d]
push 1
add al, al
add al, al
add al, al
push ecx
mov byte [ebp - 0x27d], al
call fcn.004cdc14
movzx ecx, word [0x524d40]
mov edx, ebx
and dx, word [0x5256c4]
push esi
shr dx, cl
push 1
lea eax, [ebp - 0x27d]
push 1
add dl, dl
add dl, dl
add dl, dl
push eax
mov byte [ebp - 0x27d], dl
call fcn.004cdc14
and bx, word [0x526914]
movzx ecx, word [0x526a10]
shr bx, cl
push esi
push 1
lea ecx, [ebp - 0x27d]
add bl, bl
add bl, bl
push 1
add bl, bl
push ecx
mov byte [ebp - 0x27d], bl
call fcn.004cdc14
mov ecx, dword [0x526b7c]
add dword [ebp - 0x284], 2
inc edi
add esp, 0x30
cmp edi, ecx
jl 0x46e5c0
mov edx, dword [ebp - 0x290]
mov eax, dword [ebp - 0x28c]
mov ebx, dword [ebp - 0x288]
dec eax
add ebx, edx
xor edi, edi
mov dword [ebp - 0x28c], eax
mov dword [ebp - 0x288], ebx
test eax, eax
jns 0x46e5b0
jmp 0x46e865
mov dword [ebp - 0x288], edx
cdq
and edx, 3
lea ebx, [edx + eax]
mov edx, dword [0x526b7c]
xor eax, eax
mov dword [ebp - 0x214], eax
mov dword [ebp - 0x210], eax
mov dword [ebp - 0x20c], eax
mov word [ebp - 0x208], ax
mov eax, 0x4d42
mov word [ebp - 0x214], ax
mov eax, ecx
imul eax, edx
lea eax, [eax + eax*2 + 0x36]
mov dword [ebp - 0x212], eax
xor eax, eax
push esi
mov dword [ebp - 0x23c], eax
mov dword [ebp - 0x238], eax
mov dword [ebp - 0x234], eax
mov dword [ebp - 0x230], eax
mov dword [ebp - 0x22c], eax
push 1
mov dword [ebp - 0x228], eax
mov dword [ebp - 0x224], eax
mov dword [ebp - 0x220], eax
mov dword [ebp - 0x21c], eax
mov dword [ebp - 0x218], eax
lea eax, [ebp - 0x214]
push 0xe
push eax
sar ebx, 2
mov dword [ebp - 0x20a], 0x36
mov dword [ebp - 0x23c], 0x28
mov dword [ebp - 0x238], edx
mov dword [ebp - 0x234], ecx
mov dword [ebp - 0x230], 0x180001
mov dword [ebp - 0x22c], edi
call fcn.004cdc14
push esi
push 1
lea ecx, [ebp - 0x23c]
push 0x28
push ecx
call fcn.004cdc14
mov eax, dword [0x5269e8]
dec eax
add esp, 0x20
mov dword [ebp - 0x28c], eax
cmp eax, edi
jl 0x46e865
mov ecx, dword [ebp - 0x288]
mov edx, ebx
neg edx
add edx, edx
add edx, edx
imul ebx, eax
lea ebx, [ecx + ebx*4]
mov ecx, dword [0x526b7c]
mov dword [ebp - 0x284], edx
mov dword [ebp - 0x288], ebx
lea esp, [esp]
test ecx, ecx
jle 0x46e846
mov dword [ebp - 0x290], ebx
mov edi, edi
mov edx, dword [ebp - 0x290]
mov ebx, dword [edx]
push esi
push 1
lea eax, [ebp - 0x27d]
push 1
push eax
mov byte [ebp - 0x27d], bl
call fcn.004cdc14
push esi
push 1
mov ecx, ebx
lea edx, [ebp - 0x27d]
shr ecx, 8
push 1
push edx
mov byte [ebp - 0x27d], cl
call fcn.004cdc14
push esi
push 1
lea eax, [ebp - 0x27d]
push 1
shr ebx, 0x10
push eax
mov byte [ebp - 0x27d], bl
call fcn.004cdc14
mov ecx, dword [0x526b7c]
add dword [ebp - 0x290], 4
inc edi
add esp, 0x30
cmp edi, ecx
jl 0x46e7d0
mov edx, dword [ebp - 0x284]
mov eax, dword [ebp - 0x28c]
mov ebx, dword [ebp - 0x288]
dec eax
add ebx, edx
xor edi, edi
mov dword [ebp - 0x28c], eax
mov dword [ebp - 0x288], ebx
test eax, eax
jns 0x46e7c0
push esi
call fcn.004cda49
mov eax, dword [ebp - 0x294]
add esp, 4
cmp eax, edi
je 0x46e880
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
mov eax, 1
pop ebx
call fcn.004ccd49
mov esp, ebp
pop ebp
ret