Function at 0x43aa80
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x828
cmp dword [esp + 0x82c], 1
push ebp
mov ebp, dword [esp + 0x834]
push esi
push edi
jne 0x43ac4a
cmp byte [0x56e590], 0
jne 0x43aade
test ebp, ebp
je 0x43ab46
test byte [ebp + 0x30], 0x10
je 0x43ab46
push 1
push ebp
call fcn.00441290
mov ebp, eax
add esp, 8
test ebp, ebp
jne 0x43ab46
push str.Failed_to_condense_to_a_single_shape_file_n
push 1
push 0x32d1
call fcn.00442f20
add esp, 0xc
xor esi, esi
xor edi, edi
cmp dword [esp + 0x844], edi
jne 0x43b0fc
mov ecx, dword [0x53bb80]
mov eax, dword [ecx + 8]
cmp eax, 0x56e024
je 0x43b0fc
mov edx, dword [eax + 4]
push edx
mov dword [0x53bb80], eax
call fcn.00438310
mov eax, dword [0x53bb80]
add esp, 4
test byte [eax + 0x30], 1
mov dword [eax + 4], edi
jne 0x43ab37
mov ecx, dword [eax + 0xc]
cmp ecx, edi
je 0x43ab37
push ecx
call fcn.0043ce30
mov eax, dword [0x53bb80]
add esp, 4
mov eax, dword [eax + 8]
cmp eax, 0x56e024
jne 0x43ab03
jmp 0x43b0fc
mov esi, dword [0x56dfe0]
test esi, esi
je 0x43ab77
cmp dword [0x56e468], 0
je 0x43ab77
lea esp, [esp]
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x14]
push eax
push ecx
call dword [0x56e468]
mov esi, dword [esi]
add esp, 8
test esi, esi
jne 0x43ab60
test ebp, ebp
je 0x43ac6c
test byte [ebp + 0x30], 1
je 0x43ac15
cmp dword [ebp + 0x10], 0
je 0x43ac15
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x20]
push 0x53d928
push edx
mov edx, dword [ebp + 0x14]
push eax
push ecx
push edx
call fcn.00472df0
mov edx, dword [0x53f4e4]
mov esi, eax
mov eax, dword [0x56e7b8]
lea ecx, [eax*8]
sub ecx, eax
lea eax, [edx + ecx*4]
add esp, 0x14
test byte [eax + 0xc], 1
je 0x43abf1
mov eax, dword [eax]
mov ecx, dword [str._unknown_program_]
push eax
push ecx
push str._s_MONITOR:_s:
call fcn.00442db0
push esi
push str.Generating_Source_output:__s_n
call fcn.00442cd0
add esp, 0x14
push str.Generating_source_output
push 1
call fcn.004371f0
mov edx, dword [ebp + 0x10]
push esi
push edx
call fcn.00474f50
push esi
call fcn.00418550
add esp, 0x14
call fcn.00437320
push ebp
call fcn.00474830
add esp, 4
cmp eax, 1
mov dword [esp + 0x838], eax
jne 0x43ac4a
cmp byte [0x56e590], 0
je 0x43ac6c
mov dword [esp + 0x838], 0
mov esi, dword [esp + 0x838]
jmp 0x43aae0
mov esi, dword [esp + 0x838]
cmp esi, 0xffffffff
jne 0x43ac63
pop edi
pop esi
or eax, 0xffffffff
pop ebp
add esp, 0x828
ret
cmp esi, 1
jne 0x43aae0
call fcn.004ec5e0
test ebp, ebp
je 0x43b164
cmp dword [0x56e484], 0
push ebx
je 0x43b0f4
cmp dword [esp + 0x848], 0
jne 0x43aca3
mov eax, dword [0x53bb80]
cmp dword [eax + 8], 0x56e024
jne 0x43b0f4
mov ecx, dword [ebp]
mov edx, dword [ecx + 4]
push 0
push str.externalProcessPost
push edx
call fcn.0046fad0
add esp, 0xc
test eax, eax
je 0x43acdb
cmp byte [eax], 0
je 0x43acdb
mov ebx, eax
call fcn.0043a890
mov esi, eax
cmp esi, 1
mov dword [esp + 0x83c], esi
jne 0x43b0fb
cmp dword [0x53bb90], 0
je 0x43b0c7
mov eax, dword [0x56e484]
push 0x2e
push eax
call fcn.00417470
mov esi, eax
add esp, 8
test esi, esi
je 0x43b0c7
mov edx, 0x53d97c
mov ecx, esi
lea esp, [esp]
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x43ad30
test al, al
je 0x43ad2c
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x43ad30
add ecx, 2
add edx, 2
test al, al
jne 0x43ad10
xor eax, eax
jmp 0x43ad35
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x43ad6d
mov ecx, 0x53d984
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x43ad60
test dl, dl
je 0x43ad5c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x43ad60
add eax, 2
add ecx, 2
test dl, dl
jne 0x43ad40
xor eax, eax
jmp 0x43ad65
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x43b0c7
cmp dword [0x56e470], 3
jne 0x43adce
mov eax, dword [ebp + 0x14]
lea edx, [esp + 0x38]
sub edx, eax
nop
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x43ad80
mov eax, str._thumbnail.properties
mov edx, eax
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x43ad93
lea edi, [esp + 0x38]
sub eax, edx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x43ada5
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x38]
push ecx
call fcn.00472720
add esp, 4
jmp 0x43ade4
mov edx, dword [ebp]
mov eax, dword [edx + 4]
push 0
push str.outputThumbnail
push eax
call fcn.0046fb00
add esp, 0xc
test eax, eax
je 0x43b0c7
cmp dword [0x56e4ec], 0
jne 0x43ae81
call fcn.00473d10
lea esi, [esp + 0x38]
mov ecx, eax
sub esi, eax
mov dl, byte [ecx]
mov byte [esi + ecx], dl
add ecx, 1
test dl, dl
jne 0x43ae06
mov ecx, str._bin_pvsthumb
mov esi, ecx
lea esp, [esp]
mov dl, byte [ecx]
add ecx, 1
test dl, dl
jne 0x43ae20
sub ecx, esi
lea edi, [esp + 0x38]
mov edx, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x43ae34
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.00418550
lea ecx, [esp + 0x3c]
push ecx
call fcn.00473bc0
add esp, 8
test eax, eax
mov dword [0x56e4e8], eax
mov dword [0x56e4ec], 1
jne 0x43ae8e
push str.Failed_to_find__PVIEW_HOME_bin_pvsthumb___cannot_generate_a_thumbnail_n
push 1
call fcn.004431d0
add esp, 8
mov eax, dword [0x56e4e8]
test eax, eax
je 0x43b0c7
mov edx, dword [0x56e484]
mov ecx, dword [ebp]
push 0
mov dword [esp + 0x18], edx
mov edx, dword [ecx + 4]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x14]
push str.thumbRecipe
push edx
mov dword [esp + 0x24], 0x53da08
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 0x53da0c
mov esi, 5
call fcn.0046fad0
add esp, 0xc
test eax, eax
je 0x43aee3
mov dword [esp + 0x24], 0x53da1c
mov dword [esp + 0x28], eax
mov esi, 7
push str.Generating_thumbnail
push 1
mov dword [esp + esi*4 + 0x18], 0
call fcn.004371f0
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x20]
push eax
push str.pvsthumb
call fcn.00438540
mov esi, eax
add esp, 0x18
test esi, esi
je 0x43b0c7
push 0
push 0x800
lea ecx, [esp + 0x40]
push ecx
push esi
call fcn.004389f0
add esp, 0x10
test eax, eax
jle 0x43b03e
mov bl, 0x80
call fcn.004370c0
cmp byte [esp + 0x38], 1
jne 0x43afde
mov al, byte [esp + 0x39]
cmp al, 0x46
je 0x43b04c
cmp al, 0x49
jne 0x43af99
mov eax, dword [0x56e7b8]
lea edx, [eax*8]
sub edx, eax
mov eax, dword [0x53f4e4]
test byte [eax + edx*4 + 0xc], bl
lea eax, [eax + edx*4]
je 0x43b021
mov ecx, dword [eax]
mov edx, dword [str._unknown_program_]
push ecx
push edx
push str._s_MONITOR:_s:
call fcn.00442db0
lea eax, [esp + 0x46]
push eax
push 0x53da84
jmp 0x43b019
cmp al, 0x4f
jne 0x43b021
mov eax, dword [0x56e7b8]
mov edx, dword [0x53f4e4]
lea ecx, [eax*8]
sub ecx, eax
test byte [edx + ecx*4 + 0xc], bl
lea eax, [edx + ecx*4]
je 0x43b021
mov eax, dword [eax]
mov ecx, dword [str._unknown_program_]
push eax
push ecx
push str._s_MONITOR:_s:
call fcn.00442db0
lea edx, [esp + 0x46]
push edx
push str.Output_thumbnail:__s
jmp 0x43b019
mov eax, dword [0x56e7b8]
mov edx, dword [0x53f4e4]
lea ecx, [eax*8]
sub ecx, eax
test byte [edx + ecx*4 + 0xc], bl
lea eax, [edx + ecx*4]
je 0x43b021
mov eax, dword [eax]
mov ecx, dword [str._unknown_program_]
push eax
push ecx
push str._s_MONITOR:_s:
call fcn.00442db0
lea edx, [esp + 0x44]
push edx
push 0x53daa0
call fcn.00442cd0
add esp, 0x14
push 0
push 0x800
lea eax, [esp + 0x40]
push eax
push esi
call fcn.004389f0
add esp, 0x10
test eax, eax
jg 0x43af36
push 0x53da44
push 1
push 0x32de
jmp 0x43b066
cmp byte [esp + 0x3a], 0x53
jne 0x43b05a
call fcn.00437320
jmp 0x43b06e
push str.Thumbnail_generation_failed_n
push 1
push 0x32df
call fcn.00442f20
add esp, 0xc
push esi
call fcn.0043a790
add esp, 4
cmp dword [0x56e470], 3
jne 0x43b0c7
mov ecx, dword [ebp + 0x14]
push 0
push str.loaderoptions.txt
push ecx
call fcn.004729f0
mov edi, eax
push 0x53dab8
push edi
call fcn.00500fa5
mov esi, eax
add esp, 0x14
test esi, esi
je 0x43b0be
push esi
push 0x16
push 1
push str.thumbnailcreatefalse_n
call fcn.00500e5f
push esi
call fcn.0042d717
add esp, 0x14
push edi
call fcn.00418550
add esp, 4
mov edx, dword [ebp]
mov eax, dword [edx + 4]
push 0
push str.externalProcessFinal
push eax
call fcn.0046fad0
add esp, 0xc
test eax, eax
je 0x43b0f4
cmp byte [eax], 0
je 0x43b0f4
mov ebx, eax
call fcn.0043a890
mov dword [esp + 0x83c], eax
mov esi, dword [esp + 0x83c]
pop ebx
test ebp, ebp
je 0x43b16b
cmp dword [ebp + 0x10], 0
je 0x43b159
mov eax, dword [ebp]
mov ecx, dword [eax + 4]
push 0
push 0x53daec
push ecx
call fcn.0046fad0
add esp, 0xc
test eax, eax
je 0x43b14d
cmp byte [eax], 0
je 0x43b14d
mov edx, dword [ebp]
mov eax, dword [edx + 4]
push 0
push str.sourceOutputRemove
push eax
call fcn.0046fb00
add esp, 0xc
test al, 1
je 0x43b144
cmp esi, 1
je 0x43b14d
test al, 2
je 0x43b159
cmp esi, 1
je 0x43b159
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.004742d0
add esp, 4
push ebp
call fcn.0043ce30
add esp, 4
jmp 0x43b16b
mov esi, dword [esp + 0x838]
mov eax, dword [0x56dfe0]
test eax, eax
je 0x43b187
push eax
call fcn.00438310
add esp, 4
mov dword [0x56dfe0], 0
call fcn.00473f30
cmp dword [esp + 0x844], 0
jne 0x43b200
mov edx, dword [0x53bb80]
cmp dword [edx + 8], 0x56e024
jne 0x43b200
cmp dword [0x56e470], 4
je 0x43b1cb
test esi, esi
je 0x43b1bf
cmp byte [0x56e590], 0
jne 0x43b1bf
xor eax, eax
jmp 0x43b1c2
or eax, 0xffffffff
push eax
call fcn.0043a300
add esp, 4
call fcn.00439240
mov eax, dword [esp + 0x840]
test eax, eax
je 0x43b1e6
call eax
cmp eax, 0xffffffff
je 0x43ac56
cmp byte [0x56e591], 2
jne 0x43b1fb
call fcn.00436e50
mov byte [0x56e591], 1
call fcn.00447d80
pop edi
pop esi
mov byte [0x56e590], 0
xor eax, eax
pop ebp
add esp, 0x828
ret