Function at 0x538bb0
Capabilities:
Create directory
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x57299b
mov eax, dword fs:[0]
push eax
sub esp, 0x2ac
mov eax, dword [0x661850]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [0x7dd2e8]
mov ebx, ecx
mov ecx, dword fs:[0x2c]
mov esi, dword [ecx + eax*4]
mov eax, dword [esi + 0x2010]
mov dword [ebp - 0x27c], esi
cmp eax, 0x200
jge 0x538c3f
inc eax
mov dword [esi + 0x2010], eax
shl eax, 4
add eax, esi
mov dword [eax + 0x10], str.WHDXGraphic.cpp
mov dword [eax + 0x14], str.CWHDXGraphicWindow::CapturePicture
mov dword [eax + 0x18], 0x396
mov byte [ebp - 0x265], 1
mov dword [eax + 0x1c], 0x5889ac
jmp 0x538c46
mov byte [ebp - 0x265], 0
xor edi, edi
push 0x103
lea edx, [ebp - 0x253]
push edi
push edx
mov dword [ebp - 4], edi
mov byte [ebp - 0x254], 0
call fcn.005454d0
push 0x3b
lea eax, [ebp - 0x4b]
push edi
push eax
mov byte [ebp - 0x4c], 0
call fcn.005454d0
lea ecx, [ebp - 0x4c]
push 0x3c
push ecx
call fcn.005473a8
push 0x587bd0
lea edx, [ebp - 0x4c]
push 0x3c
push edx
call fcn.0054a108
lea eax, [ebp - 0x4c]
add esp, 0x2c
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x538c98
sub eax, edx
push eax
lea eax, [ebp + eax - 0x4c]
push eax
call fcn.005472de
lea ecx, [ebp - 0x4c]
push ecx
push 0x69df00
push 0x69dcf0
push 0x588e44
lea edx, [ebp - 0x254]
push 0x104
push edx
call fcn.0054572d
add esp, 0x20
push edi
push 0x21
push edi
push edi
lea eax, [ebp - 0x254]
push eax
push 0xffffff
push edi
push edi
mov ecx, ebx
call fcn.00538af0
mov eax, dword [ebx + 0x44]
mov dword [ebp - 0x280], eax
cmp eax, edi
jne 0x538d12
cmp byte [ebp - 0x265], 0
je 0x539002
dec dword [esi + 0x2010]
jmp 0x539002
mov ecx, dword [eax]
lea edx, [ebp - 0x26c]
push edx
push eax
mov eax, dword [ecx + 0x3c]
call eax
mov ecx, dword [ebp - 0x26c]
push ecx
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
movzx edx, word [0x6658dc]
mov ecx, dword [ebp - 0x26c]
mov esi, eax
movzx eax, word [0x6658d8]
push edx
push eax
push ecx
mov dword [ebp - 0x270], esi
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
push esi
mov dword [ebp - 0x28c], eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov edx, dword [ebp - 0x26c]
movzx ecx, word [0x6658d8]
push 0xcc0020
push edi
push edi
push edx
mov dword [ebp - 0x278], eax
movzx eax, word [0x6658dc]
push eax
push ecx
push edi
push edi
push esi
call dword [sym.imp.GDI32.dll_BitBlt]
movzx eax, word [0x6658d8]
movzx ecx, word [0x6658dc]
mov dword [ebp - 0x2b0], eax
mov edx, 1
mov word [ebp - 0x2a8], dx
lea eax, [eax + eax*2]
mov edx, 0x18
lea eax, [eax*8 + 0x1f]
mov word [ebp - 0x2a6], dx
cdq
and edx, 0x1f
lea ebx, [edx + eax]
sar ebx, 5
imul ebx, ecx
add ebx, ebx
add ebx, ebx
lea eax, [ebx + 0x28]
push eax
push 0x42
mov dword [ebp - 0x2b4], 0x28
mov dword [ebp - 0x2ac], ecx
mov dword [ebp - 0x2a4], edi
mov dword [ebp - 0x2a0], edi
mov dword [ebp - 0x29c], edi
mov dword [ebp - 0x298], edi
mov dword [ebp - 0x294], edi
mov dword [ebp - 0x290], edi
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push eax
mov dword [ebp - 0x284], eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov edi, eax
mov dword [ebp - 0x274], eax
mov ecx, 0xa
lea esi, [ebp - 0x2b4]
rep movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x4c]
xor esi, esi
lea edi, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x538e40
sub eax, edi
je 0x538e80
jmp 0x538e50
mov al, byte [ebp + esi - 0x4c]
cmp al, 0x2f
je 0x538e67
cmp al, 0x3a
je 0x538e67
cmp al, 0x20
jne 0x538e6c
mov byte [ebp + esi - 0x4c], 0x2d
jmp 0x538e6c
mov byte [ebp + esi - 0x4c], 0x5f
lea eax, [ebp - 0x4c]
inc esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x538e73
sub eax, edx
cmp esi, eax
jb 0x538e50
push str._Mir3.bmp
lea ecx, [ebp - 0x4c]
push 0x3c
push ecx
call fcn.0054a108
push 0x103
lea edx, [ebp - 0x14f]
push 0
push edx
mov byte [ebp - 0x150], 0
call fcn.005454d0
lea eax, [ebp - 0x4c]
push eax
push str..kingcapture_s
lea ecx, [ebp - 0x150]
push 0x104
push ecx
call fcn.0054572d
mov edi, dword [sym.imp.KERNEL32.dll_CreateFileA]
add esp, 0x28
push 0
push 0x8000080
push 2
push 0
push 0
push 0x40000000
lea edx, [ebp - 0x150]
push edx
call edi
mov esi, eax
cmp esi, 0xffffffff
jne 0x538f1d
push 0
push str..kingcapture
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x538f1d
push 0
push 0x80
push 2
push 0
push 2
push 0x40000000
lea eax, [ebp - 0x150]
push eax
call edi
mov esi, eax
mov eax, dword [ebp - 0x274]
xor edx, edx
push edx
push eax
mov ecx, 0x4d42
mov word [ebp - 0x264], cx
movzx ecx, word [0x6658dc]
add eax, 0x28
push eax
mov eax, dword [ebp - 0x270]
push ecx
push edx
mov dword [ebp - 0x25e], edx
mov edx, dword [ebp - 0x28c]
push edx
add ebx, 0x36
push eax
mov dword [ebp - 0x262], ebx
mov dword [ebp - 0x25a], 0x36
call dword [sym.imp.GDI32.dll_GetDIBits]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, dword [sym.imp.KERNEL32.dll_WriteFile]
push 0
lea ecx, [ebp - 0x288]
push ecx
push 0xe
lea edx, [ebp - 0x264]
push edx
push esi
call edi
mov ecx, dword [ebp - 0x274]
push 0
lea eax, [ebp - 0x288]
push eax
push ebx
push ecx
push esi
call edi
mov edx, dword [ebp - 0x284]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, dword [ebp - 0x278]
mov edi, dword [ebp - 0x270]
push eax
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
push edi
call dword [sym.imp.GDI32.dll_DeleteDC]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x280]
mov edx, dword [ebp - 0x26c]
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x40]
call eax
cmp byte [ebp - 0x265], 0
je 0x539002
mov eax, dword [ebp - 0x27c]
dec dword [eax + 0x2010]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0054514c
mov esp, ebp
pop ebp
ret