Function at 0x40e560
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x7e0
push esi
push edi
mov edi, dword [0x486ba8]
xor esi, esi
mov ecx, edi
mov dword [esp + 0x10], edi
call fcn.00447220
mov dword [esp + 0xc], eax
test eax, eax
je 0x40e988
xor ecx, ecx
lea esp, [esp]
mov al, byte [ecx + str.Procedure_TestProcedure__]
lea ecx, [ecx + 1]
mov byte [esp + ecx + 0x17], al
test al, al
jne 0x40e590
mov esi, dword [esp + 0xc]
lea eax, [esp + 8]
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_WriteFile]
push 0
push eax
push 0x1a
lea eax, [esp + 0x28]
mov byte [esp + 0x41], 0xa
push eax
push esi
call ebp
xor ecx, ecx
jmp 0x40e5d0
mov al, byte [ecx + str.Dim_Array_1_]
lea ecx, [ecx + 1]
mov byte [esp + ecx + 0x1b], al
test al, al
jne 0x40e5d0
push 0
lea eax, [esp + 0x10]
mov byte [esp + 0x2c], 0xa
push eax
push 0xd
lea eax, [esp + 0x28]
push eax
push esi
call ebp
xor ecx, ecx
lea esp, [esp]
mov al, byte [ecx + str.NewList_List__]
lea ecx, [ecx + 1]
mov byte [esp + ecx + 0x1b], al
test al, al
jne 0x40e600
push 0
lea eax, [esp + 0x10]
mov byte [esp + 0x2e], 0xa
push eax
push 0xf
lea eax, [esp + 0x28]
push eax
push esi
call ebp
xor ecx, ecx
lea esp, [esp]
mov al, byte [ecx + str.NewMap_Map__]
lea ecx, [ecx + 1]
mov byte [esp + ecx + 0x1b], al
test al, al
jne 0x40e630
push 0
lea eax, [esp + 0x10]
mov byte [esp + 0x2c], 0xa
push eax
push 0xd
lea eax, [esp + 0x28]
push eax
push esi
call ebp
xor ecx, ecx
lea esp, [esp]
mov al, byte [ecx + str.Structure_TestStructure_:_a.i_:_EndStructure]
lea ecx, [ecx + 1]
mov byte [esp + ecx + 0x1b], al
test al, al
jne 0x40e660
push 0
lea eax, [esp + 0x10]
mov byte [esp + 0x4c], 0xa
push eax
push 0x2d
lea eax, [esp + 0x28]
push eax
push esi
call ebp
mov eax, dword [0x4a9cc8]
push ebx
mov dword [eax], 0
mov ecx, dword [eax]
test ecx, ecx
je 0x40e6a7
mov ebx, dword [ecx]
test ebx, ebx
je 0x40e6a3
mov dword [eax], ebx
jmp 0x40e6b4
xor ebx, ebx
jmp 0x40e6ac
mov ebx, dword [eax + 4]
mov dword [eax], ebx
test ebx, ebx
je 0x40e932
test dword [ebx + 0x20], 0x680
jne 0x40e693
mov ecx, dword [ebx + 8]
mov edx, 0x49b320
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx], al
lea edx, [edx + 1]
test al, al
jne 0x40e6c5
test dword [ebx + 0x20], 0x2000
je 0x40e71c
mov ecx, 0x49b320
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40e6e4
sub ecx, edx
mov byte [ecx + 0x49b31f], al
mov ecx, 0x49b320
lea edx, [ecx + 1]
jmp 0x40e700
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40e700
sub ecx, edx
mov al, byte [ecx + 0x49b31f]
sub al, 0x30
cmp al, 9
ja 0x40e71c
mov byte [ecx + 0x49b31f], 0
mov edi, 0x49b320
dec edi
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x40e722
mov ax, word [0x46e068]
xor ebp, ebp
mov word [edi], ax
cmp dword [ebx + 0x1c], ebp
jle 0x40e8bb
mov cx, word [0x46eb78]
mov ax, word [0x46eba8]
lea ecx, [ecx]
mov edx, dword [ebx + 0x2c]
movsx esi, byte [edx + ebp]
cmp esi, 0x1b
je 0x40e8ad
cmp esi, 0x1d
je 0x40e8ad
cmp esi, 0x1f
je 0x40e8ad
cmp esi, 0x21
je 0x40e8ad
cmp esi, 0x22
je 0x40e8ad
test ebp, ebp
jle 0x40e79d
mov edi, 0x49b320
dec edi
mov edi, edi
mov dl, byte [edi + 1]
lea edi, [edi + 1]
test dl, dl
jne 0x40e790
mov word [edi], cx
add esi, 0xfffffff9
cmp esi, 0x19
ja case.0x40e7b0.9
movzx edx, byte [esi + 0x40e9bc]
jmp dword [edx*4 + 0x40e9a4]
mov esi, 0x49b320
dec esi
lea ecx, [ecx]
mov dl, byte [esi + 1]
lea esi, [esi + 1]
test dl, dl
jne 0x40e7c0
mov dx, word [0x46eb7c]
mov word [esi], dx
mov dl, byte [0x46eb7e]
mov byte [esi + 2], dl
jmp 0x40e8ad
mov esi, 0x49b320
dec esi
mov dl, byte [esi + 1]
lea esi, [esi + 1]
test dl, dl
jne 0x40e7e8
mov edx, dword [str.Array__]
mov dword [esi], edx
mov edx, dword [0x46eb84]
mov dword [esi + 4], edx
jmp 0x40e8ad
mov esi, 0x49b320
dec esi
mov edi, edi
mov dl, byte [esi + 1]
lea esi, [esi + 1]
test dl, dl
jne 0x40e810
mov edx, dword [str.List__]
mov dword [esi], edx
mov dx, word [0x46eb8c]
mov word [esi + 4], dx
mov dl, byte [0x46eb8e]
mov byte [esi + 6], dl
jmp 0x40e8ad
mov esi, 0x49b320
dec esi
mov dl, byte [esi + 1]
lea esi, [esi + 1]
test dl, dl
jne 0x40e841
mov edx, dword [str.Map__]
mov dword [esi], edx
mov dx, word [0x46eb94]
mov word [esi + 4], dx
jmp 0x40e8ad
mov esi, 0x49b320
dec esi
mov dl, byte [esi + 1]
lea esi, [esi + 1]
test dl, dl
jne 0x40e866
mov edx, dword [str.TestStructure]
mov dword [esi], edx
mov edx, dword [0x46eb9c]
mov dword [esi + 4], edx
mov edx, dword [0x46eba0]
mov dword [esi + 8], edx
mov dx, word [0x46eba4]
mov word [esi + 0xc], dx
jmp 0x40e8ad
mov edi, 0x49b320
dec edi
lea ecx, [ecx]
mov dl, byte [edi + 1]
lea edi, [edi + 1]
test dl, dl
jne 0x40e8a0
mov word [edi], ax
inc ebp
cmp ebp, dword [ebx + 0x1c]
jl 0x40e750
mov esi, dword [esp + 0x14]
mov edi, 0x49b320
dec edi
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x40e8c1
mov ax, word [0x46e514]
mov edx, 0x49b320
mov word [edi], ax
lea ecx, [edx + 1]
lea esp, [esp]
mov al, byte [edx]
inc edx
test al, al
jne 0x40e8e0
sub edx, ecx
xor eax, eax
jmp 0x40e8f0
mov cl, byte [eax + 0x49b320]
lea eax, [eax + 1]
mov byte [esp + eax + 0x407], cl
test cl, cl
jne 0x40e8f0
mov ebp, dword [sym.imp.KERNEL32.dll_WriteFile]
lea eax, [esp + 0x1c]
push 0
push eax
lea eax, [edx + 1]
mov byte [esp + edx + 0x410], 0xa
push eax
lea eax, [esp + 0x414]
push eax
push esi
call ebp
mov eax, dword [0x4a9cc8]
jmp 0x40e693
xor ecx, ecx
pop ebx
jmp 0x40e940
mov al, byte [ecx + str.EndProcedure]
lea ecx, [ecx + 1]
mov byte [esp + ecx + 0x403], al
test al, al
jne 0x40e940
push 0
lea eax, [esp + 0x1c]
mov byte [esp + 0x414], 0xa
push eax
push 0xd
lea eax, [esp + 0x410]
push eax
push esi
call ebp
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, dword [esp + 0x14]
mov esi, 1
mov eax, str.Test_file__s_successfully_created._n
pop ebp
jmp 0x40e98d
mov eax, str.Test_file__s_creation_failed._n
push edi
push eax
call fcn.00412ad0
add esp, 8
mov eax, esi
pop edi
pop esi
add esp, 0x7e0
ret