Function at 0x10042a90
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 8
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 0x98]
test eax, eax
je 0x10042b4f
cmp byte [esi + 1], 0
je 0x10042b4f
mov byte [eax + 0x10], 0
mov edi, dword [esi + 0x98]
test edi, edi
je 0x10042b4f
mov ecx, edi
call fcn.100564a0
mov ecx, dword [edi + 0x54]
test ecx, ecx
je 0x10042af1
mov eax, dword [0x101541b4]
test eax, eax
je 0x10042ae6
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov ecx, dword [edi + 0x48]
test ecx, ecx
je 0x10042b12
mov eax, dword [0x101541b4]
test eax, eax
je 0x10042b07
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov ecx, dword [edi + 0x3c]
test ecx, ecx
je 0x10042b33
mov eax, dword [0x101541b4]
test eax, eax
je 0x10042b28
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov eax, dword [0x101541b4]
test eax, eax
je 0x10042b42
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
mov ecx, edi
call fcn.1003cd90
cmp byte [esi], 0
mov dword [esi + 0x98], 0
je 0x10043333
cmp byte [esi + 0x2e91], 0
je 0x10042bc9
mov edi, dword [esi + 0x20]
test edi, edi
je 0x10042bc9
mov ebx, dword [0x101541b4]
lea ecx, [esp + 0x14]
mov dword [0x101541b4], esi
mov dword [esi + 0x2e94], 0
mov dword [esp + 0x14], 0
call fcn.1004eee0
mov edx, 0x1013812c
mov ecx, edi
mov ebp, eax
call fcn.1003d850
mov edi, eax
test edi, edi
je 0x10042bc3
push edi
push dword [esp + 0x18]
push 1
push ebp
call fcn.10104c54
push edi
call fcn.10103d10
add esp, 0x14
mov dword [0x101541b4], ebx
mov edx, 6
mov ecx, esi
call fcn.10040730
xor edi, edi
cmp dword [esi + 0x1b54], edi
jle 0x10042bf7
nop
mov ecx, dword [esi + 0x1b5c]
mov ecx, dword [ecx + edi*4]
call fcn.1004fd70
inc edi
cmp edi, dword [esi + 0x1b54]
jl 0x10042be0
mov ecx, dword [esi + 0x1b5c]
test ecx, ecx
je 0x10042c39
mov eax, dword [0x101541b4]
mov dword [esi + 0x1b58], 0
mov dword [esi + 0x1b54], 0
test eax, eax
je 0x10042c24
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0x1b5c], 0
mov ecx, dword [esi + 0x1b68]
test ecx, ecx
je 0x10042c7b
mov eax, dword [0x101541b4]
mov dword [esi + 0x1b64], 0
mov dword [esi + 0x1b60], 0
test eax, eax
je 0x10042c66
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0x1b68], 0
mov ecx, dword [esi + 0x1b74]
test ecx, ecx
je 0x10042cbd
mov eax, dword [0x101541b4]
mov dword [esi + 0x1b70], 0
mov dword [esi + 0x1b6c], 0
test eax, eax
je 0x10042ca8
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0x1b74], 0
mov dword [esi + 0x1b94], 0
mov ecx, dword [esi + 0x1b80]
test ecx, ecx
je 0x10042d09
mov eax, dword [0x101541b4]
mov dword [esi + 0x1b7c], 0
mov dword [esi + 0x1b78], 0
test eax, eax
je 0x10042cf4
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0x1b80], 0
mov ecx, dword [esi + 0x1b8c]
test ecx, ecx
je 0x10042d4b
mov eax, dword [0x101541b4]
mov dword [esi + 0x1b88], 0
mov dword [esi + 0x1b84], 0
test eax, eax
je 0x10042d36
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0x1b8c], 0
mov dword [esi + 0x1cf8], 0
mov dword [esi + 0x1b9c], 0
mov dword [esi + 0x1b98], 0
mov dword [esi + 0x1c0c], 0
mov dword [esi + 0x1bf8], 0
mov dword [esi + 0x1ba0], 0
mov ecx, dword [esi + 0x1c94]
test ecx, ecx
je 0x10042dc9
mov eax, dword [0x101541b4]
mov dword [esi + 0x1c90], 0
mov dword [esi + 0x1c8c], 0
test eax, eax
je 0x10042db4
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0x1c94], 0
mov ecx, dword [esi + 0x1ca0]
test ecx, ecx
je 0x10042e0b
mov eax, dword [0x101541b4]
mov dword [esi + 0x1c9c], 0
mov dword [esi + 0x1c98], 0
test eax, eax
je 0x10042df6
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0x1ca0], 0
mov ecx, dword [esi + 0x1cac]
test ecx, ecx
je 0x10042e4d
mov eax, dword [0x101541b4]
mov dword [esi + 0x1ca8], 0
mov dword [esi + 0x1ca4], 0
test eax, eax
je 0x10042e38
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0x1cac], 0
mov ecx, dword [esi + 0x1cdc]
test ecx, ecx
je 0x10042e8f
mov eax, dword [0x101541b4]
mov dword [esi + 0x1cd8], 0
mov dword [esi + 0x1cd4], 0
test eax, eax
je 0x10042e7a
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0x1cdc], 0
mov ecx, dword [esi + 0x1ce8]
test ecx, ecx
je 0x10042ed1
mov eax, dword [0x101541b4]
mov dword [esi + 0x1ce4], 0
mov dword [esi + 0x1ce0], 0
test eax, eax
je 0x10042ebc
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0x1ce8], 0
xor ecx, ecx
mov dword [esp + 0x14], ecx
cmp dword [esi + 0x1cec], ecx
jle 0x10042f90
mov eax, dword [esi + 0x1cf4]
mov ebp, dword [eax + ecx*4]
test ebp, ebp
je 0x10042f7f
mov edi, dword [ebp + 0x2c]
test edi, edi
je 0x10042f1e
mov ecx, edi
call fcn.100517a0
mov eax, dword [0x101541b4]
test eax, eax
je 0x10042f11
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
mov ecx, edi
call fcn.1003cd90
mov edi, dword [ebp + 0x30]
test edi, edi
je 0x10042f48
mov ecx, edi
call fcn.100517a0
mov eax, dword [0x101541b4]
test eax, eax
je 0x10042f3b
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
mov ecx, edi
call fcn.1003cd90
mov edi, 2
lea ebx, [ebp + 0x78]
sub ebx, 0xc
mov ecx, ebx
call fcn.100505b0
sub edi, 1
jne 0x10042f50
mov eax, dword [0x101541b4]
test eax, eax
je 0x10042f6e
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
mov ecx, ebp
call fcn.1003cd90
mov ecx, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, dword [esi + 0x1cec]
jl 0x10042ee3
mov ecx, dword [esi + 0x1cf4]
test ecx, ecx
je 0x10042fd2
mov eax, dword [0x101541b4]
mov dword [esi + 0x1cf0], 0
mov dword [esi + 0x1cec], 0
test eax, eax
je 0x10042fbd
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0x1cf4], 0
lea ecx, [esi + 0x1f14]
call fcn.10050740
mov ecx, dword [esi + 0x1f38]
test ecx, ecx
je 0x1004301f
mov eax, dword [0x101541b4]
mov dword [esi + 0x1f34], 0
mov dword [esi + 0x1f30], 0
test eax, eax
je 0x1004300a
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0x1f38], 0
mov ecx, dword [esi + 0x1f44]
test ecx, ecx
je 0x10043061
mov eax, dword [0x101541b4]
mov dword [esi + 0x1f40], 0
mov dword [esi + 0x1f3c], 0
test eax, eax
je 0x1004304c
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0x1f44], 0
lea ecx, [esi + 0x1ed0]
call fcn.10050690
mov ecx, dword [esi + 0x1ef4]
test ecx, ecx
je 0x100430ae
mov eax, dword [0x101541b4]
mov dword [esi + 0x1ef0], 0
mov dword [esi + 0x1eec], 0
test eax, eax
je 0x10043099
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0x1ef4], 0
mov ecx, dword [esi + 0x1f0c]
test ecx, ecx
je 0x100430f0
mov eax, dword [0x101541b4]
mov dword [esi + 0x1f08], 0
mov dword [esi + 0x1f04], 0
test eax, eax
je 0x100430db
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0x1f0c], 0
mov ecx, dword [esi + 0x2e70]
test ecx, ecx
je 0x10043132
mov eax, dword [0x101541b4]
mov dword [esi + 0x2e6c], 0
mov dword [esi + 0x2e68], 0
test eax, eax
je 0x1004311d
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0x2e70], 0
mov ecx, dword [esi + 0x2e7c]
test ecx, ecx
je 0x10043174
mov eax, dword [0x101541b4]
mov dword [esi + 0x2e78], 0
mov dword [esi + 0x2e74], 0
test eax, eax
je 0x1004315f
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0x2e7c], 0
mov ecx, dword [esi + 0x1f64]
test ecx, ecx
je 0x100431b6
mov eax, dword [0x101541b4]
mov dword [esi + 0x1f60], 0
mov dword [esi + 0x1f5c], 0
test eax, eax
je 0x100431a1
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0x1f64], 0
mov ecx, dword [esi + 0x1f70]
test ecx, ecx
je 0x100431f8
mov eax, dword [0x101541b4]
mov dword [esi + 0x1f6c], 0
mov dword [esi + 0x1f68], 0
test eax, eax
je 0x100431e3
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0x1f70], 0
mov ecx, dword [esi + 0x1f7c]
test ecx, ecx
je 0x1004323a
mov eax, dword [0x101541b4]
mov dword [esi + 0x1f78], 0
mov dword [esi + 0x1f74], 0
test eax, eax
je 0x10043225
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0x1f7c], 0
mov ecx, dword [esi + 0x2eb8]
test ecx, ecx
je 0x1004327c
mov eax, dword [0x101541b4]
mov dword [esi + 0x2eb4], 0
mov dword [esi + 0x2eb0], 0
test eax, eax
je 0x10043267
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0x2eb8], 0
mov ecx, dword [esi + 0x2eac]
test ecx, ecx
je 0x100432be
mov eax, dword [0x101541b4]
mov dword [esi + 0x2ea8], 0
mov dword [esi + 0x2ea4], 0
test eax, eax
je 0x100432a9
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0x2eac], 0
cmp dword [esi + 0x2ee0], 0
je 0x100432ee
mov edi, dword [esi + 0x2ee0]
push 1
call fcn.10104d7f
add esp, 4
cmp edi, eax
je 0x100432e4
push edi
call fcn.10103d10
add esp, 4
mov dword [esi + 0x2ee0], 0
mov ecx, dword [esi + 0x2eec]
test ecx, ecx
je 0x10043330
mov eax, dword [0x101541b4]
mov dword [esi + 0x2ee8], 0
mov dword [esi + 0x2ee4], 0
test eax, eax
je 0x1004331b
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0x2eec], 0
mov byte [esi], 0
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret