Function at 0x101d4c50
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x284
mov eax, dword [0x10284f40]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x24c], esi
call fcn.100fa3e1
xor ecx, ecx
mov dword [ebp - 0x274], ecx
mov byte [ebp - 0x245], cl
mov eax, dword [eax]
mov dword [ebp - 0x284], eax
mov al, byte [edi]
test al, al
je 0x101d541e
mov dword [ebp - 0x27c], 0x30
cmp al, 0x25
je 0x101d4cee
mov al, byte [edi + 1]
lea esi, [edi + 1]
test al, al
je 0x101d4cbe
cmp al, 0x25
je 0x101d4cbe
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x101d4cb2
mov eax, esi
push ebx
sub eax, edi
push eax
push edi
call fcn.101d55d0
add esp, 0xc
cmp byte [ebx + 0x14], 0
jne 0x101d541e
cmp byte [esi], 0
je 0x101d541e
mov ecx, dword [ebp - 0x274]
mov edi, esi
mov esi, dword [ebp - 0x24c]
test ecx, ecx
mov eax, edi
cmovne eax, ecx
inc edi
mov dword [ebp - 0x274], eax
cmp byte [edi], 0x73
jne 0x101d4d2b
mov edx, dword [esi]
inc edi
add esi, 4
mov ecx, edx
mov dword [ebp - 0x24c], esi
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x101d4d12
sub ecx, esi
push ebx
push ecx
push edx
call fcn.101d55d0
add esp, 0xc
jmp 0x101d53e2
xor eax, eax
xor esi, esi
xor edx, edx
mov dword [ebp - 0x26c], eax
mov dword [ebp - 0x268], eax
mov dword [ebp - 0x25c], eax
xor al, al
mov dword [ebp - 0x264], esi
mov dword [ebp - 0x260], esi
mov dword [ebp - 0x270], esi
mov dword [ebp - 0x258], esi
mov dword [ebp - 0x250], edx
mov byte [ebp - 0x247], al
mov byte [ebp - 0x246], al
mov dword [ebp - 0x254], edx
mov al, byte [edi]
inc edi
movsx ecx, al
mov byte [ebp - 0x280], al
mov byte [ebp - 0x278], al
lea eax, [ecx - 0x24]
cmp eax, 0x56
ja case.0x101d4d9a.38
movzx eax, byte [eax + 0x101d5478]
jmp dword [eax*4 + 0x101d5430]
mov dword [ebp - 0x260], 1
jmp case.0x101d4d9a.39
mov dword [ebp - 0x264], 1
jmp case.0x101d4d9a.39
test esi, esi
jne case.0x101d4d9a.49
mov eax, dword [ebp - 0x270]
cmp dword [ebp - 0x250], esi
cmove eax, dword [ebp - 0x27c]
mov dword [ebp - 0x270], eax
lea esi, [esi + esi*4]
lea esi, [esi - 0x18]
lea esi, [ecx + esi*2]
jmp case.0x101d4d9a.39
cmp byte [ebp - 0x246], 0
mov dword [ebp - 0x250], 1
cmove edx, esi
mov byte [ebp - 0x246], 0
xor esi, esi
jmp 0x101d4d6f
cmp byte [ebp - 0x245], 0
je 0x101d4e21
mov byte [ebp - 0x247], 1
xor esi, esi
mov byte [ebp - 0x246], 1
jmp case.0x101d4d9a.39
mov eax, dword [ebp - 0x24c]
mov esi, dword [ebp - 0x250]
add eax, 4
mov dword [ebp - 0x24c], eax
mov ecx, dword [eax - 4]
test esi, esi
je 0x101d4e65
xor eax, eax
mov byte [ebp - 0x246], 1
test ecx, ecx
cmovns eax, ecx
mov dword [ebp - 0x258], eax
xor eax, eax
test ecx, ecx
cmovns eax, esi
xor esi, esi
mov dword [ebp - 0x250], eax
jmp case.0x101d4d9a.39
mov edx, ecx
mov dword [ebp - 0x254], edx
test ecx, ecx
jns 0x101d4e83
neg edx
mov dword [ebp - 0x260], 1
mov dword [ebp - 0x254], edx
mov byte [ebp - 0x246], 1
xor esi, esi
jmp case.0x101d4d9a.39
cmp byte [ebp - 0x245], 0
jne 0x101d4ec4
lea eax, [ebp - 0x244]
push eax
push dword [ebp - 0x24c]
push dword [ebp - 0x274]
call fcn.101d56a0
add esp, 0xc
test al, al
je case.0x101d4d9a.38
mov byte [ebp - 0x245], 1
cmp byte [ebp - 0x247], 0
je 0x101d4f40
mov edx, dword [ebp - 0x250]
mov ecx, dword [ebp + esi*8 - 0x244]
test edx, edx
je 0x101d4f0d
xor eax, eax
test ecx, ecx
cmovns eax, ecx
mov dword [ebp - 0x258], eax
xor eax, eax
test ecx, ecx
cmovns eax, edx
mov edx, dword [ebp - 0x254]
mov dword [ebp - 0x250], eax
xor al, al
mov byte [ebp - 0x247], al
xor esi, esi
jmp case.0x101d4d9a.39
mov dword [ebp - 0x254], ecx
test ecx, ecx
jns 0x101d4f2b
mov eax, ecx
mov dword [ebp - 0x260], 1
neg eax
mov dword [ebp - 0x254], eax
mov edx, dword [ebp - 0x254]
xor al, al
mov byte [ebp - 0x247], al
xor esi, esi
jmp case.0x101d4d9a.39
mov edx, dword [ebp - 0x254]
mov dword [ebp - 0x25c], esi
xor esi, esi
jmp case.0x101d4d9a.39
cmp dword [ebp - 0x268], 0
je 0x101d4f6b
mov dword [ebp - 0x26c], 1
jmp case.0x101d4d9a.39
mov dword [ebp - 0x268], 1
jmp case.0x101d4d9a.39
cmp byte [ebp - 0x246], 0
jne 0x101d4f92
cmp dword [ebp - 0x250], 0
je 0x101d4f98
mov dword [ebp - 0x258], esi
mov esi, dword [ebp - 0x254]
cmp byte [ebp - 0x245], 0
je 0x101d4fc9
cmp dword [ebp - 0x26c], 0
mov eax, dword [ebp - 0x25c]
je 0x101d4fc0
mov ecx, dword [ebp + eax*8 - 0x244]
mov edx, dword [ebp + eax*8 - 0x240]
jmp 0x101d5006
mov eax, dword [ebp + eax*8 - 0x244]
jmp 0x101d5003
cmp dword [ebp - 0x26c], 0
mov eax, dword [ebp - 0x24c]
je 0x101d4fe8
mov ecx, dword [eax]
add eax, 8
mov dword [ebp - 0x24c], eax
mov edx, dword [eax - 4]
jmp 0x101d5006
add eax, 4
cmp dword [ebp - 0x268], 0
mov dword [ebp - 0x24c], eax
jne 0x101d5000
mov dword [ebp - 0x24c], eax
mov eax, dword [eax - 4]
cdq
mov ecx, eax
push ebx
push dword [ebp - 0x250]
push dword [ebp - 0x258]
push dword [ebp - 0x270]
push esi
push dword [ebp - 0x260]
mov esi, dword [ebp - 0x264]
push esi
push dword [ebp - 0x280]
push edx
push ecx
call fcn.101d5d70
add esp, 0x28
jmp 0x101d53e2
cmp byte [ebp - 0x246], 0
jne 0x101d5050
cmp dword [ebp - 0x250], 0
jne 0x101d5056
mov edx, esi
mov esi, dword [ebp - 0x258]
cmp byte [ebp - 0x245], 0
je 0x101d507e
cmp dword [ebp - 0x26c], 0
mov eax, dword [ebp - 0x25c]
mov ecx, dword [ebp + eax*8 - 0x244]
je 0x101d50b7
mov eax, dword [ebp + eax*8 - 0x240]
jmp 0x101d50b9
cmp dword [ebp - 0x26c], 0
mov eax, dword [ebp - 0x24c]
je 0x101d509d
mov ecx, dword [eax]
add eax, 8
mov dword [ebp - 0x24c], eax
mov eax, dword [eax - 4]
jmp 0x101d50b9
mov ecx, dword [eax]
add eax, 4
cmp dword [ebp - 0x268], 0
mov dword [ebp - 0x24c], eax
jne 0x101d50b7
mov dword [ebp - 0x24c], eax
xor eax, eax
push ebx
push dword [ebp - 0x250]
push esi
push dword [ebp - 0x270]
mov esi, dword [ebp - 0x264]
push edx
push dword [ebp - 0x260]
push esi
push dword [ebp - 0x278]
push eax
push ecx
call fcn.101d5d70
add esp, 0x28
jmp 0x101d53e2
cmp byte [ebp - 0x246], 0
jne 0x101d50fd
cmp dword [ebp - 0x250], 0
cmove edx, esi
cmp byte [ebp - 0x245], 0
je 0x101d5115
mov eax, dword [ebp - 0x25c]
mov al, byte [ebp + eax*8 - 0x244]
jmp 0x101d5127
mov eax, dword [ebp - 0x24c]
add eax, 4
mov dword [ebp - 0x24c], eax
mov al, byte [eax - 4]
xor ecx, ecx
mov byte [ebp - 0x247], al
lea eax, [edx - 1]
test eax, eax
cmovns ecx, eax
mov esi, ecx
neg esi
cmp dword [ebp - 0x260], 0
cmove esi, ecx
test esi, esi
jle 0x101d5157
push ebx
push esi
push 0x20
call fcn.101d5510
add esp, 0xc
xor esi, esi
mov eax, dword [ebx + 8]
test eax, eax
je 0x101d5176
cmp dword [ebx], eax
jb 0x101d5176
cmp dword [ebx + 0xc], 0
jne 0x101d516d
inc dword [ebx + 0x10]
jmp 0x101d5182
push ebx
call fcn.101d5a40
add esp, 4
mov eax, dword [ebx]
mov cl, byte [ebp - 0x247]
mov byte [eax], cl
inc dword [ebx]
test esi, esi
jns 0x101d53e2
push ebx
neg esi
push esi
push 0x20
call fcn.101d5510
add esp, 0xc
jmp 0x101d53e2
cmp byte [ebp - 0x246], 0
mov ecx, dword [ebp - 0x250]
jne 0x101d51b6
test ecx, ecx
jne 0x101d51bc
mov dword [ebp - 0x254], esi
mov esi, dword [ebp - 0x258]
cmp byte [ebp - 0x245], 0
je 0x101d51d4
mov eax, dword [ebp - 0x25c]
mov edx, dword [ebp + eax*8 - 0x244]
jmp 0x101d51e6
mov eax, dword [ebp - 0x24c]
add eax, 4
mov dword [ebp - 0x24c], eax
mov edx, dword [eax - 4]
mov dword [ebp - 0x264], edx
test ecx, ecx
je 0x101d5204
push esi
push edx
call fcn.100fd6c7
mov edx, dword [ebp - 0x264]
add esp, 8
mov esi, eax
jmp 0x101d5219
mov esi, edx
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x101d5210
sub esi, ecx
mov ecx, dword [ebp - 0x254]
mov eax, 0
sub ecx, esi
push ebx
cmovns eax, ecx
mov ecx, eax
neg ecx
cmp dword [ebp - 0x260], 0
cmove ecx, eax
mov dword [ebp - 0x268], ecx
test ecx, ecx
jle 0x101d525f
push ecx
push 0x20
call fcn.101d5510
push ebx
push esi
push dword [ebp - 0x264]
call fcn.101d55d0
add esp, 0x18
jmp 0x101d53e2
push esi
push edx
call fcn.101d55d0
mov eax, dword [ebp - 0x268]
add esp, 0xc
test eax, eax
jns 0x101d53e2
push ebx
neg eax
push eax
push 0x20
call fcn.101d5510
add esp, 0xc
jmp 0x101d53e2
cmp byte [ebp - 0x245], 0
je 0x101d52a2
mov eax, dword [ebp - 0x25c]
mov eax, dword [ebp + eax*8 - 0x244]
jmp 0x101d52b4
mov eax, dword [ebp - 0x24c]
add eax, 4
mov dword [ebp - 0x24c], eax
mov eax, dword [eax - 4]
push eax
lea eax, [ebp - 0x44]
push 0x1026c100
push eax
call fcn.100ad210
add esp, 0xc
test eax, eax
jns 0x101d52d3
mov byte [ebx + 0x14], 1
jmp 0x101d53e2
push ebx
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.101d55d0
add esp, 0xc
jmp 0x101d53e2
cmp byte [ebp - 0x246], 0
mov ecx, dword [ebp - 0x250]
jne 0x101d52fb
test ecx, ecx
jne 0x101d5301
mov edx, esi
mov esi, dword [ebp - 0x258]
cmp byte [ebp - 0x245], 0
je 0x101d531b
mov eax, dword [ebp - 0x25c]
movsd xmm0, qword [ebp + eax*8 - 0x244]
jmp 0x101d532f
mov eax, dword [ebp - 0x24c]
add eax, 8
mov dword [ebp - 0x24c], eax
movsd xmm0, qword [eax - 8]
push ebx
push ecx
push esi
push dword [ebp - 0x270]
mov esi, dword [ebp - 0x264]
push edx
push dword [ebp - 0x260]
push esi
push dword [ebp - 0x278]
sub esp, 8
movsd qword [esp], xmm0
call fcn.101d5a90
add esp, 0x28
jmp 0x101d53e2
push 0x100
lea eax, [ebp - 0x144]
push eax
push dword [ebp - 0x284]
call fcn.101d6fb0
mov edx, eax
add esp, 0xc
lea esi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x101d5380
sub edx, esi
push ebx
push edx
push eax
call fcn.101d55d0
add esp, 0xc
jmp 0x101d53e2
mov eax, dword [ebx + 8]
test eax, eax
je 0x101d53db
mov esi, dword [ebx]
cmp esi, eax
jb 0x101d53db
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x101d53af
inc dword [ebx + 0x10]
jmp 0x101d53e2
mov ecx, dword [ebx + 4]
sub esi, ecx
cmp byte [ebx + 0x14], 0
jne 0x101d53d6
test esi, esi
je 0x101d53d6
push eax
push esi
push 1
push ecx
call fcn.100fc451
add dword [ebx + 0x10], eax
add esp, 0x10
cmp eax, esi
je 0x101d53d6
mov byte [ebx + 0x14], 1
mov eax, dword [ebx + 4]
mov dword [ebx], eax
mov eax, dword [ebx]
mov byte [eax], 0x25
inc dword [ebx]
cmp byte [ebx + 0x14], 0
jne 0x101d541e
mov al, byte [edi]
mov esi, dword [ebp - 0x24c]
mov ecx, dword [ebp - 0x274]
test al, al
jne 0x101d4ca4
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100e40d6
mov esp, ebp
pop ebp
ret
call fcn.100fa3e1
mov dword [eax], 0x16
mov byte [ebx + 0x14], 1
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100e40d6
mov esp, ebp
pop ebp
ret