Function at 0x437b80
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x16c
mov edi, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
test edi, edi
je case.default.0x437bf3
xor ecx, ecx
cmp ecx, dword [ebp + 0x10]
jge 0x437bc6
lea esi, [esi]
mov byte [ebp + ecx*2 - 0x87], 0x20
mov byte [ebp + ecx*2 - 0x88], 0x20
inc ecx
cmp ecx, dword [ebp + 0x10]
setl dl
cmp ecx, 0x18
setle al
and eax, 0xff
test edx, eax
jne 0x437ba0
lea esi, [ebp - 0x88]
push eax
push eax
push edi
push esi
mov byte [ebp + ecx*2 - 0x87], 0
mov byte [ebp + ecx*2 - 0x88], 0
call sub.msvcrt.dll_fputs
add esp, 0x10
test ebx, ebx
je 0x437bfa
mov eax, dword [ebx]
cmp eax, 9
ja case.default.0x437bf3
jmp dword [eax*4 + 0x74444c]
push edi
push 0x17
push 1
push str.Object_is_empty__NULL__n
call sub.msvcrt.dll_fwrite
lea esi, [esi]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
push edi
push 0x1f
push 1
push str.Object_is_an_XSLT_value_tree_:_n
call sub.msvcrt.dll_fwrite
mov esi, dword [ebx + 4]
xor ebx, ebx
add esp, 0x10
cmp ebx, dword [ebp + 0x10]
jge 0x437c5a
mov byte [ebp + ebx*2 - 0xf7], 0x20
mov byte [ebp + ebx*2 - 0xf8], 0x20
inc ebx
cmp ebx, dword [ebp + 0x10]
setl dl
cmp ebx, 0x18
setle al
and eax, 0xff
test edx, eax
jne 0x437c34
mov byte [ebp + ebx*2 - 0xf7], 0
mov byte [ebp + ebx*2 - 0xf8], 0
test esi, esi
je 0x437c81
mov eax, dword [esi]
test eax, eax
je 0x437c81
mov eax, dword [esi + 8]
mov eax, dword [eax]
test eax, eax
jne 0x43813d
push eax
push eax
lea eax, [ebp - 0xf8]
push edi
push eax
call sub.msvcrt.dll_fputs
add esp, 0x10
push edi
push 0x15
push 1
push str.Value_Tree_is_NULL___n
call sub.msvcrt.dll_fwrite
add esp, 0x10
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
push edi
push 0x18
push 1
push str.Object_is_uninitialized_n
call sub.msvcrt.dll_fwrite
jmp 0x437ca2
push edi
xor esi, esi
push 0x17
push 1
push str.Object_is_a_Node_Set_:_n
call sub.msvcrt.dll_fwrite
mov ebx, dword [ebx + 4]
add esp, 0x10
mov dword [ebp - 0x16c], ebx
cmp esi, dword [ebp + 0x10]
jge 0x437d06
mov byte [ebp + esi*2 - 0xf7], 0x20
mov byte [ebp + esi*2 - 0xf8], 0x20
inc esi
cmp esi, dword [ebp + 0x10]
setl dl
cmp esi, 0x18
setle al
and eax, 0xff
test edx, eax
jne 0x437ce0
mov byte [ebp + esi*2 - 0xf7], 0
mov byte [ebp + esi*2 - 0xf8], 0
mov eax, dword [ebp - 0x16c]
test eax, eax
je 0x4380ef
mov eax, dword [ebp - 0x16c]
push esi
xor esi, esi
mov ebx, dword [eax]
push ebx
push str.Set_contains__d_nodes:_n
push edi
call sub.msvcrt.dll_fprintf
mov edx, dword [ebp - 0x16c]
add esp, 0x10
mov ecx, dword [edx]
test ecx, ecx
jle case.default.0x437bf3
mov eax, dword [ebp + 0x10]
inc eax
mov dword [ebp - 0x178], eax
push edx
push edx
lea edx, [ebp - 0xf8]
push edi
push edx
call sub.msvcrt.dll_fputs
add esp, 0xc
lea ebx, [esi + 1]
push ebx
push 0x74429b
push edi
call sub.msvcrt.dll_fprintf
mov edx, dword [ebp - 0x16c]
pop eax
mov eax, dword [edx + 8]
mov edx, dword [eax + esi*4]
mov eax, dword [ebp - 0x178]
push eax
mov eax, edi
call fcn.00437aa0
mov eax, dword [ebp - 0x16c]
add esp, 0x10
mov esi, ebx
cmp dword [eax], ebx
jg 0x437d58
jmp case.default.0x437bf3
push edi
push 0x16
push 1
push str.Object_is_a_Boolean_:
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 8]
add esp, 0x10
test eax, eax
je 0x438066
push edi
push 5
push 1
push str.true_n
call sub.msvcrt.dll_fwrite
jmp 0x437ca2
push esi
mov ecx, dword [ebx + 0x20]
push ecx
push str.Object_is_a_point_:_index__d_in_node
push edi
call sub.msvcrt.dll_fprintf
mov eax, dword [ebp + 0x10]
mov edx, dword [ebx + 0x1c]
inc eax
mov dword [esp], eax
mov eax, edi
call fcn.00437aa0
pop eax
pop edx
push edi
push 0xa
call sub.msvcrt.dll_fputc
add esp, 0x10
jmp 0x437ca5
push eax
push eax
mov eax, dword [ebx + 0x14]
push eax
mov eax, dword [ebx + 0x10]
push eax
call fcn.00437430
add esp, 0x10
cmp eax, 0xffffffff
je 0x438129
dec eax
je 0x4380d4
mov eax, dword [ebx + 0x14]
push eax
mov esi, dword [ebx + 0x10]
push esi
call fcn.00437390
pop edx
test eax, eax
pop ecx
jne 0x438115
fld qword [ebx + 0x10]
fcom qword [0x744444]
fnstsw ax
test ah, 0x40
je 0x4380e8
sub esp, 0x10
fstp qword [esp]
call fcn.00437470
add esp, 0x10
test eax, eax
jne 0x4381ec
mov esi, dword [ebx + 0x14]
push esi
mov ecx, dword [ebx + 0x10]
push ecx
push str.Object_is_a_number_:__0g_n
push edi
call sub.msvcrt.dll_fprintf
add esp, 0x10
jmp 0x437ca5
push edi
push 0x15
push 1
push str.Object_is_a_string_:
call sub.msvcrt.dll_fwrite
pop eax
mov eax, dword [ebx + 0x18]
pop edx
push eax
push edi
call fcn.004b4fa0
jmp 0x437dfa
push edi
xor esi, esi
push 0x1a
push 1
push str.Object_is_a_Location_Set:_n
call sub.msvcrt.dll_fwrite
mov ebx, dword [ebx + 0x1c]
add esp, 0x10
mov dword [ebp - 0x174], ebx
cmp esi, dword [ebp + 0x10]
jge 0x437ef2
mov byte [ebp + esi*2 - 0x167], 0x20
mov byte [ebp + esi*2 - 0x168], 0x20
inc esi
cmp esi, dword [ebp + 0x10]
setl dl
cmp esi, 0x18
setle al
and eax, 0xff
test edx, eax
jne 0x437ecc
mov byte [ebp + esi*2 - 0x167], 0
mov byte [ebp + esi*2 - 0x168], 0
mov eax, dword [ebp - 0x174]
test eax, eax
je 0x4381c6
mov edx, dword [ebp - 0x174]
xor esi, esi
mov ebx, dword [edx]
test ebx, ebx
jle case.default.0x437bf3
mov eax, dword [ebp + 0x10]
inc eax
mov dword [ebp - 0x178], eax
lea edx, [ebp - 0x168]
push ecx
push ecx
push edi
push edx
call sub.msvcrt.dll_fputs
add esp, 0xc
lea ebx, [esi + 1]
push ebx
push str._d_:
push edi
call sub.msvcrt.dll_fprintf
add esp, 0xc
mov edx, dword [ebp - 0x178]
push edx
mov edx, dword [ebp - 0x174]
mov eax, dword [edx + 8]
mov eax, dword [eax + esi*4]
mov esi, ebx
push eax
push edi
call fcn.00437b80
mov eax, dword [ebp - 0x174]
add esp, 0x10
cmp dword [eax], ebx
jg 0x437f2c
jmp case.default.0x437bf3
push edi
push 0x17
push 1
push str.Object_is_user_defined_n
call sub.msvcrt.dll_fwrite
jmp 0x437ca2
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x43807a
cmp eax, dword [ebx + 0x1c]
jne 0x437fae
mov eax, dword [ebx + 0x28]
cmp dword [ebx + 0x20], eax
je 0x43807a
push edi
push 0x14
push 1
push str.Object_is_a_range_:_n
call sub.msvcrt.dll_fwrite
pop ecx
pop eax
push edi
push esi
call sub.msvcrt.dll_fputs
push edi
push 5
push 1
push str.From
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 0x20]
add esp, 0x20
test eax, eax
js 0x437fef
push edx
push eax
push str.index__d_in
push edi
call sub.msvcrt.dll_fprintf
add esp, 0x10
push edi
push 5
push 1
push str.node_n
call sub.msvcrt.dll_fwrite
mov eax, dword [ebp + 0x10]
inc eax
mov edx, dword [ebx + 0x1c]
mov dword [ebp - 0x170], eax
mov dword [esp], eax
mov eax, edi
call fcn.00437aa0
pop ecx
pop eax
push edi
push esi
call sub.msvcrt.dll_fputs
push edi
push 3
push 1
push 0x744378
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 0x28]
add esp, 0x20
test eax, eax
js 0x438047
push edx
push eax
push str.index__d_in
push edi
call sub.msvcrt.dll_fprintf
add esp, 0x10
push edi
push 5
push 1
push str.node_n
call sub.msvcrt.dll_fwrite
pop eax
mov eax, dword [ebp - 0x170]
mov edx, dword [ebx + 0x24]
push eax
jmp 0x437df3
push edi
push 6
push 1
push str.false_n
call sub.msvcrt.dll_fwrite
jmp 0x437ca2
push edi
push 0x1e
push 1
push str.Object_is_a_collapsed_range_:_n
call sub.msvcrt.dll_fwrite
pop ecx
pop eax
push edi
push esi
call sub.msvcrt.dll_fputs
mov eax, dword [ebx + 0x20]
add esp, 0x10
test eax, eax
js 0x4380ac
push edx
push eax
push str.index__d_in
push edi
call sub.msvcrt.dll_fprintf
add esp, 0x10
push edi
push 5
push 1
push str.node_n
call sub.msvcrt.dll_fwrite
mov eax, dword [ebp + 0x10]
inc eax
mov edx, dword [ebx + 0x1c]
mov dword [esp], eax
mov eax, edi
call fcn.00437aa0
add esp, 0x10
jmp 0x437ca5
push edi
push 0x1e
push 1
push str.Object_is_a_number_:_Infinity_n
call sub.msvcrt.dll_fwrite
jmp 0x437ca2
fstp st(0)
jmp 0x437e6f
push eax
push eax
lea eax, [ebp - 0xf8]
push edi
push eax
call sub.msvcrt.dll_fputs
add esp, 0x10
push edi
push 0x12
push 1
push str.NodeSet_is_NULL___n
call sub.msvcrt.dll_fwrite
jmp 0x437ca2
push edi
push 0x19
push 1
push str.Object_is_a_number_:_NaN_n
call sub.msvcrt.dll_fwrite
jmp 0x437ca2
push edi
push 0x1f
push 1
push str.Object_is_a_number_:__Infinity_n
call sub.msvcrt.dll_fwrite
jmp 0x437ca2
push eax
push eax
lea eax, [ebp - 0xf8]
push edi
push eax
call sub.msvcrt.dll_fputs
add esp, 0xc
lea eax, [ebx + 1]
push eax
push 0x74429b
push edi
call sub.msvcrt.dll_fprintf
mov eax, dword [esi + 8]
mov esi, dword [ebp + 0x10]
inc esi
xor ecx, ecx
mov eax, dword [eax]
add esp, 0x10
cmp ecx, esi
mov ebx, dword [eax + 0xc]
jge 0x438198
mov byte [ebp + ecx*2 - 0x167], 0x20
mov byte [ebp + ecx*2 - 0x168], 0x20
inc ecx
cmp ecx, esi
setl dl
cmp ecx, 0x18
setle al
and eax, 0xff
test edx, eax
jne 0x438173
mov byte [ebp + ecx*2 - 0x167], 0
mov byte [ebp + ecx*2 - 0x168], 0
test ebx, ebx
je 0x438200
mov eax, ebx
mov ebx, dword [ebx + 0x18]
push edx
push esi
push eax
push edi
call fcn.004b51d0
add esp, 0x10
test ebx, ebx
jne 0x4381ac
jmp case.default.0x437bf3
lea eax, [ebp - 0x168]
push esi
push esi
push edi
push eax
call sub.msvcrt.dll_fputs
add esp, 0x10
push edi
push 0x16
push 1
push str.LocationSet_is_NULL___n
call sub.msvcrt.dll_fwrite
jmp 0x437ca2
push edi
push 0x17
push 1
push str.Object_is_a_number_:_0_n
call sub.msvcrt.dll_fwrite
jmp 0x437ca2
lea eax, [ebp - 0x168]
push ecx
push ecx
push edi
push eax
call sub.msvcrt.dll_fputs
add esp, 0x10
push edi
push 0xf
push 1
push str.Node_is_NULL___n
call sub.msvcrt.dll_fwrite
jmp 0x437ca2