Function at 0x40d639
Capabilities:
Create directory
Delete file
Read file on windows
Resolve function by parsing pe exports
Write file on windows

Disassembly:
jmp 0x4824d0
jmp 0x52bb50
jmp 0x524760
mov eax, dword [esp + 4]
movzx edx, ax
cmp edx, 0xffffffff
je 0x4824ee
cmp dword [0x7eb190], 4
je 0x4824ee
mov dword [esp + 4], eax
jmp fcn.00405db7
ret 4
mov eax, dword [esp + 4]
sub esp, 0x240
cmp eax, 0x28
ja case.default.0x524776
push ebx
push esi
push edi
jmp dword [eax*4 + 0x5251cc]
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 0
mov ecx, 0x7b5f90
jmp fcn.0040767b
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 1
mov ecx, 0x7b5f90
jmp fcn.0040767b
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 2
mov ecx, 0x7b5f90
jmp fcn.0040767b
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 3
mov ecx, 0x7b5f90
jmp fcn.0040767b
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 4
mov ecx, 0x7b5f90
jmp fcn.0040767b
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 5
mov ecx, 0x7b5f90
jmp fcn.0040767b
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 6
mov ecx, 0x7b5f90
jmp fcn.0040767b
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 7
mov ecx, 0x7b5f90
jmp fcn.0040767b
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 8
mov ecx, 0x7b5f90
jmp fcn.0040767b
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 9
mov ecx, 0x7b5f90
jmp fcn.0040767b
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 0
mov ecx, dword [0x7a4270]
jmp fcn.0040d297
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 1
mov ecx, dword [0x7a4270]
jmp fcn.0040d297
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 2
mov ecx, dword [0x7a4270]
jmp fcn.0040d297
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 3
mov ecx, dword [0x7a4270]
jmp fcn.0040d297
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 3
mov ecx, dword [0x7a4224]
jmp 0x403495
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 2
mov ecx, dword [0x7a4224]
jmp 0x403495
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 4
mov ecx, dword [0x7a4224]
jmp 0x403495
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 7
mov ecx, dword [0x7a4224]
jmp 0x403495
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 5
mov ecx, dword [0x7a4224]
jmp 0x403495
mov ecx, 0x7b4278
call fcn.0040ceeb
test eax, eax
jne case.0x524776.20
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 0xb
mov ecx, dword [0x7a4224]
jmp 0x403495
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 0xa
mov ecx, dword [0x7a4224]
jmp 0x403495
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 8
mov ecx, dword [0x7a4224]
jmp 0x403495
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 9
mov ecx, dword [0x7a4224]
jmp 0x403495
mov ecx, 0x7b6268
call fcn.00408ea4
pop edi
pop esi
pop ebx
add esp, 0x240
ret 4
mov ecx, 0x7c80ec
call fcn.0040face
pop edi
pop esi
pop ebx
add esp, 0x240
ret 4
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 1
mov ecx, dword [0x7a4224]
jmp 0x403495
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 6
mov ecx, dword [0x7a4224]
jmp 0x403495
mov ecx, 0x7eb178
call fcn.0040eabb
pop edi
pop esi
pop ebx
add esp, 0x240
ret 4
push ebp
xor ebx, ebx
push ebx
mov ecx, 0x7ebc78
call fcn.0041052d
push ebx
push str.ScreenShot
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
lea eax, [esp + 0x38]
push eax
mov dword [esp + 0x34], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x20], ebx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push ebx
push 0x80
push 3
push ebx
push ebx
push 0x80000000
push str.ini_ScreenShot.cnt
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
mov dword [esp + 0x10], ebx
cmp esi, 0xffffffff
je 0x524bdf
mov edi, dword [sym.imp.KERNEL32.dll_ReadFile]
push ebx
lea ecx, [esp + 0x14]
push ecx
push 2
lea edx, [esp + 0x3c]
push edx
push esi
call edi
push ebx
lea eax, [esp + 0x14]
push eax
push 2
lea ecx, [esp + 0x2c]
push ecx
push esi
call edi
push ebx
lea edx, [esp + 0x14]
push edx
push 2
lea eax, [esp + 0x34]
push eax
push esi
call edi
push ebx
lea ecx, [esp + 0x14]
push ecx
push 2
lea edx, [esp + 0x30]
push edx
push esi
call edi
push ebx
lea eax, [esp + 0x14]
push eax
push 2
lea ecx, [esp + 0x40]
push ecx
push esi
call edi
push ebx
lea edx, [esp + 0x14]
push edx
push 2
lea eax, [esp + 0x38]
push eax
push esi
call edi
push ebx
lea ecx, [esp + 0x14]
push ecx
push 2
lea edx, [esp + 0x28]
push edx
push esi
call edi
push ebx
lea eax, [esp + 0x14]
push eax
push 2
lea ecx, [esp + 0x24]
push ecx
push esi
call edi
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x30]
mov bx, word [esp + 0x44]
cmp cx, word [0x7a34c4]
jne 0x524bd1
mov dx, word [esp + 0x38]
cmp dx, word [esp + 0x20]
jne 0x524bd1
mov ebp, dword [esp + 0x28]
cmp word [esp + 0x3a], bp
jne 0x524bd1
mov edi, dword [esp + 0x24]
cmp word [esp + 0x3e], di
jne 0x524bd1
mov esi, dword [esp + 0x34]
cmp word [esp + 0x40], si
jne 0x524bd1
mov edx, dword [esp + 0x2c]
cmp word [esp + 0x42], dx
jne 0x524bd1
mov eax, dword [esp + 0x1c]
cmp bx, ax
je 0x524c28
movzx eax, word [esp + 0x38]
mov dword [esp + 0x20], eax
movzx eax, bx
jmp 0x524bed
movzx edx, word [esp + 0x38]
movzx eax, word [esp + 0x44]
mov dword [esp + 0x20], edx
movzx edx, word [esp + 0x42]
movzx esi, word [esp + 0x40]
movzx edi, word [esp + 0x3e]
movzx ebp, word [esp + 0x3a]
movzx ecx, word [0x7a34c4]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x34], esi
mov dword [esp + 0x18], 1
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x30], ecx
movzx ebx, word [esp + 0x18]
push ebx
movzx eax, ax
push eax
movzx edx, dx
push edx
movzx eax, si
push eax
movzx edx, di
push edx
movzx eax, bp
push eax
movzx eax, word [esp + 0x38]
cdq
mov esi, 0x64
idiv esi
movzx ecx, cx
push edx
push ecx
lea edx, [esp + 0x70]
push str.ScreenShot_DarkStory__02d__02d_02d_02d__02d_02d_02d__03d.jpg
push edx
call fcn.0060a295
movzx eax, word [esp + 0x40]
movzx ecx, word [esp + 0x44]
movzx edx, word [esp + 0x54]
push eax
movzx eax, word [esp + 0x60]
push ecx
movzx ecx, word [esp + 0x54]
push edx
movzx edx, word [esp + 0x5c]
push eax
movzx eax, word [esp + 0x58]
push ecx
push edx
cdq
mov ecx, esi
idiv ecx
lea eax, [esp + 0x190]
push edx
movzx edx, word [esp + 0x74]
push edx
push str.ScreenShot_DarkStory__02d__02d_02d_02d__02d_02d_02d__03d.txt
push eax
call fcn.0060a295
mov eax, dword [0x7e88c0]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x10]
add esp, 0x50
push eax
call edx
mov ecx, dword [eax]
lea edx, [esp + 0x50]
push edx
push eax
mov eax, dword [ecx + 0xe8]
call eax
pop ebp
test eax, eax
je 0x524dba
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
push str.ini_ScreenShot.cnt
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x524d94
mov edi, dword [sym.imp.KERNEL32.dll_WriteFile]
inc dword [esp + 0x14]
push 0
lea ecx, [esp + 0x10]
push ecx
push 2
lea edx, [esp + 0x38]
push edx
push esi
call edi
push 0
lea eax, [esp + 0x10]
push eax
push 2
lea ecx, [esp + 0x28]
push ecx
push esi
call edi
push 0
lea edx, [esp + 0x10]
push edx
push 2
lea eax, [esp + 0x30]
push eax
push esi
call edi
push 0
lea ecx, [esp + 0x10]
push ecx
push 2
lea edx, [esp + 0x2c]
push edx
push esi
call edi
push 0
lea eax, [esp + 0x10]
push eax
push 2
lea ecx, [esp + 0x3c]
push ecx
push esi
call edi
push 0
lea edx, [esp + 0x10]
push edx
push 2
lea eax, [esp + 0x34]
push eax
push esi
call edi
push 0
lea ecx, [esp + 0x10]
push ecx
push 2
lea edx, [esp + 0x24]
push edx
push esi
call edi
push 0
lea eax, [esp + 0x10]
push eax
push 2
lea ecx, [esp + 0x20]
push ecx
push esi
call edi
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea edx, [esp + 0x4c]
push edx
push 0xc9
mov ecx, 0x7b73a8
call fcn.00410d20
push eax
push 0x1d
push 0x7b73a8
call fcn.0040198d
add esp, 0x10
jmp 0x524dd9
push 0xc8
mov ecx, 0x7b73a8
call fcn.00410d20
push eax
push 0x1d
push 0x7b73a8
call fcn.0040198d
add esp, 0xc
push 0
lea eax, [esp + 0x50]
push eax
push 0x11
call dword [sym.imp.FreeImage.dll__FreeImage_Load_12]
mov esi, eax
test esi, esi
je case.0x524776.20
lea ecx, [esp + 0x4c]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea eax, [esp + 0x4c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x524e04
sub eax, edx
push 0x80
lea edx, [esp + 0x50]
lea eax, [esp + eax + 0x50]
push edx
push esi
mov word [eax - 3], 0x706a
mov byte [eax - 1], 0x67
call dword [sym.imp.FreeImage.dll__FreeImage_SaveJPEG_12]
push esi
call dword [sym.imp.FreeImage.dll__FreeImage_Unload_4]
pop edi
pop esi
pop ebx
add esp, 0x240
ret 4
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 1
mov ecx, 0x7b4d40
jmp fcn.0040a6aa
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 0
mov ecx, 0x7b4d40
jmp fcn.0040a6aa
mov eax, dword [0x7a4220]
test eax, eax
je case.0x524776.20
mov eax, dword [eax + 0x96dc]
test eax, eax
je case.0x524776.20
cmp dword [eax + 0x20], 0
je case.0x524776.20
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 1
mov ecx, 0x7b73a8
jmp 0x40ce64
mov eax, dword [0x7a4220]
test eax, eax
je case.0x524776.20
mov eax, dword [eax + 0x96dc]
test eax, eax
je case.0x524776.20
cmp dword [eax + 0x20], 0
je case.0x524776.20
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 0
mov ecx, 0x7b73a8
jmp 0x40ce64
mov ecx, dword [0x7a42d8]
test ecx, ecx
je case.0x524776.20
mov eax, dword [ecx]
xor edx, edx
cmp dword [ecx + 0x10], edx
pop edi
pop esi
sete dl
pop ebx
add esp, 0x240
mov dword [esp + 4], edx
mov eax, dword [eax + 8]
jmp eax
mov eax, dword [0x7b4d44]
cmp dword [eax + 0x31c], 0
jne case.0x524776.20
cmp dword [eax + 0x404], 0
jne case.0x524776.20
mov ecx, 0x7c601c
call fcn.00404386
pop edi
pop esi
pop ebx
add esp, 0x240
ret 4
cmp dword [0x7eb190], 4
je case.0x524776.20
mov ecx, dword [0x7a441c]
mov edx, dword [ecx]
pop edi
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 0
mov eax, dword [edx + 8]
jmp eax
cmp dword [0x7eb190], 4
je case.0x524776.20
mov cx, word [ecx + 0xbc4]
mov edx, dword [0x7a441c]
pop edi
mov word [edx + 0x258], cx
mov ecx, dword [0x7a441c]
mov eax, dword [ecx]
pop esi
pop ebx
add esp, 0x240
mov dword [esp + 4], 1
mov edx, dword [eax + 8]
jmp edx
mov ecx, dword [0x7b4d44]
mov eax, 1
cmp dword [ecx + 0x404], eax
jne case.0x524776.20
mov ecx, dword [0x7a4208]
mov edx, dword [ecx]
pop edi
pop esi
pop ebx
cmp dword [ecx + 0x10], eax
jne 0x524ff8
add esp, 0x240
mov dword [esp + 4], 0
mov eax, dword [edx + 8]
jmp eax
add esp, 0x240
mov dword [esp + 4], eax
mov eax, dword [edx + 8]
jmp eax
mov ax, word [0x7eacec]
cmp ax, 5
je case.0x524776.20
cmp ax, 0x36
je case.0x524776.20
movzx esi, ax
call fcn.00402365
mov dword [eax + 0x230], esi
call fcn.00402365
xor ecx, ecx
xor ebx, ebx
cmp dword [eax + 0xec], ebx
sete cl
mov esi, ecx
call fcn.00402365
mov dword [eax + 0xec], esi
call fcn.00402365
cmp dword [eax + 0xec], ebx
je 0x52515f
call fcn.00402365
cmp dword [eax + 0x180], ebx
je 0x525109
mov esi, dword [0x7b4d44]
mov edi, dword [esi]
call fcn.00402365
mov edx, dword [edi + 0x88]
add eax, 0xe0
push eax
mov ecx, esi
call edx
call fcn.00402365
fld dword [eax + 0xe0]
fdiv qword [0x644960]
fnstcw word [esp + 0x12]
movzx eax, word [esp + 0x12]
or eax, 0xc00
mov dword [esp + 0x18], eax
fldcw word [esp + 0x18]
fistp qword [esp + 0x44]
mov esi, dword [esp + 0x44]
fldcw word [esp + 0x12]
call fcn.00402365
mov dword [eax + 0x228], esi
call fcn.00402365
fld dword [eax + 0xe8]
fdiv qword [0x644960]
fnstcw word [esp + 0x12]
movzx eax, word [esp + 0x12]
or eax, 0xc00
mov dword [esp + 0x44], eax
fldcw word [esp + 0x44]
fistp qword [esp + 0x44]
mov esi, dword [esp + 0x44]
fldcw word [esp + 0x12]
call fcn.00402365
mov dword [eax + 0x22c], esi
push 0x9af
mov ecx, 0x7b73a8
call fcn.00410d20
push eax
push 0x32
push 0x7b73a8
call fcn.0040198d
movzx esi, word [0x7eacec]
add esp, 0xc
call fcn.00402365
mov dword [eax + 0x230], esi
call fcn.00402365
mov dword [eax + 0x1d80], ebx
call fcn.00402365
mov dword [eax + 0x1d84], ebx
mov ecx, dword [0x7a44d4]
cmp dword [ecx + 0x10], ebx
je 0x5251b3
push 1
jmp 0x5251a0
push 0x9b0
mov ecx, 0x7b73a8
call fcn.00410d20
push eax
push 0x32
push 0x7b73a8
call fcn.0040198d
add esp, 0xc
call fcn.00402365
mov dword [eax + 0x1d80], ebx
call fcn.00402365
mov dword [eax + 0x1d84], ebx
mov ecx, dword [0x7a44d4]
cmp dword [ecx + 0x10], ebx
je 0x5251b3
push ebx
mov eax, dword [ecx]
mov edx, dword [eax + 0x60]
push 0x3e0
call edx
mov ecx, eax
call fcn.00406d75
call fcn.00402365
mov ecx, eax
call fcn.00405ba0
pop edi
pop esi
pop ebx
add esp, 0x240
ret 4
sub esp, 0x80
push esi
mov esi, ecx
mov eax, dword [esi + 0x28]
mov ecx, dword [eax + 0x96dc]
push 0x80
call fcn.00407cf7
push eax
lea ecx, [esp + 0xc]
push ecx
call fcn.00404b7e
add esp, 0xc
cmp byte [esp + 4], 0x2f
jne 0x52bc9b
cmp dword [esp + 0x88], 0
mov eax, dword [esi + 0x47d8]
mov ecx, eax
je 0x52bc26
jmp 0x52bba0
inc eax
mov dword [esi + 0x47d8], eax
cmp eax, 5
jle 0x52bbb6
mov dword [esi + 0x47d8], 0
mov eax, dword [esi + 0x47d8]
mov edx, eax
shl edx, 4
add edx, esi
cmp byte [eax + edx + 0x4781], 0
jne 0x52bbdb
cmp eax, ecx
jne 0x52bba0
pop esi
add esp, 0x80
ret 4
mov ecx, eax
shl ecx, 4
add ecx, esi
lea edx, [eax + ecx + 0x4781]
push edx
lea eax, [esp + 8]
push str.__s
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov edx, dword [esi + 0x28]
add esp, 0xc
lea ecx, [esp + 4]
push ecx
mov ecx, dword [edx + 0x96dc]
call fcn.0040a344
push 0
mov ecx, 0x7c809c
call fcn.00405b0a
pop esi
add esp, 0x80
ret 4
mov edx, 4
push edi
lea esp, [esp]
dec eax
mov dword [esi + 0x47d8], eax
jns 0x52bc3f
mov dword [esi + 0x47d8], edx
mov eax, dword [esi + 0x47d8]
mov edi, eax
shl edi, 4
add edi, esi
cmp byte [eax + edi + 0x4781], 0
jne 0x52bc65
cmp eax, ecx
jne 0x52bc30
pop edi
pop esi
add esp, 0x80
ret 4
mov ecx, eax
shl ecx, 4
add ecx, esi
lea edx, [eax + ecx + 0x4781]
push edx
lea eax, [esp + 0xc]
push str.__s
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov edx, dword [esi + 0x28]
add esp, 0xc
lea ecx, [esp + 8]
push ecx
mov ecx, dword [edx + 0x96dc]
call fcn.0040a344
pop edi
pop esi
add esp, 0x80
ret 4