Function at 0x4b3ec0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
push eax
mov eax, 0x13a8
call fcn.0058a5bc
mov eax, dword [ebp - 0x10]
mov esi, eax
mov edi, edx
test edx, edx
je 0x4b3f17
mov eax, dword [edx + 4]
mov dword [esi + 0x74], edx
cmp eax, 0x14
jbe switch.0x004b3f10
mov ecx, dword [esi + 0x7c]
test ecx, ecx
je 0x4b3f40
push edx
push edx
mov edx, 0x1393
mov eax, dword [edi + 4]
push eax
mov eax, esi
push str.Unknown_node_type__d_n
call fcn.004b3440
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
jmp dword [eax*4 + 0x75fb0c]
mov edi, dword [eax + 0x7c]
test edi, edi
jne 0x4b3f05
call fcn.004b33b0
mov esi, dword [esi]
push esi
push 0xd
push 1
push str.node_is_NULL_n
call sub.msvcrt.dll_fwrite
add esp, 0x10
jmp 0x4b3f05
mov eax, esi
call fcn.004b33b0
jmp 0x4b3eee
mov edi, dword [esi + 0x7c]
test edi, edi
jne 0x4b3f05
mov eax, esi
call fcn.004b33b0
mov ebx, dword [esi]
push ebx
push 0xc
push 1
push str.INCLUDE_END_n
call sub.msvcrt.dll_fwrite
jmp 0x4b3f34
mov ebx, dword [esi + 0x7c]
test ebx, ebx
je 0x4b4808
mov eax, dword [edi + 0x20]
test eax, eax
jne 0x4b3f9b
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x4b42c2
mov eax, dword [esi]
push eax
push 0x15
push 1
push str.PBM:_doc__NULL_____n
call sub.msvcrt.dll_fwrite
add esp, 0x10
mov eax, dword [esi + 0x6c]
inc eax
mov dword [esi + 0x6c], eax
mov eax, dword [edi + 4]
cmp eax, 1
je 0x4b429d
cmp eax, 5
je 0x4b42ce
dec eax
je 0x4b3fd0
mov eax, dword [edi + 0x28]
test eax, eax
je 0x4b3fd0
mov ebx, dword [esi + 0x7c]
test ebx, ebx
je 0x4b441f
lea esi, [esi]
mov eax, dword [esi + 0x6c]
dec eax
mov dword [esi + 0x6c], eax
mov edx, edi
mov eax, esi
call fcn.004b3700
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x4b47f0
mov eax, dword [esi]
push eax
push 0x1c
push 1
push str.Error__ATTRIBUTE_found_here_n
call sub.msvcrt.dll_fwrite
jmp 0x4b3fd7
mov eax, dword [esi + 0x7c]
test eax, eax
jne 0x4b3f75
mov eax, esi
call fcn.004b33b0
cmp dword [edi + 8], 0x74561c
je 0x4b4980
mov eax, dword [esi]
push eax
push 4
push 1
push str.TEXT
call sub.msvcrt.dll_fwrite
add esp, 0x10
test byte [esi + 0x88], 1
je 0x4b4066
lea eax, [edi + 0x2c]
mov edx, dword [edi + 0x28]
cmp edx, eax
je 0x4b49fb
push ecx
push ecx
push edx
mov edx, dword [esi + 0x78]
push edx
call fcn.00464690
add esp, 0x10
dec eax
je 0x4b49a8
push eax
push eax
mov eax, dword [esi]
push eax
push 0xa
call sub.msvcrt.dll_fputc
add esp, 0x10
jmp 0x4b3f75
mov eax, dword [esi + 0x7c]
test eax, eax
jne 0x4b3f75
mov eax, esi
call fcn.004b33b0
mov eax, dword [esi]
push eax
push 0xe
push 1
push str.CDATA_SECTION_n
call sub.msvcrt.dll_fwrite
add esp, 0x10
jmp 0x4b3f75
mov eax, dword [esi + 0x7c]
test eax, eax
jne 0x4b3f75
mov eax, esi
call fcn.004b33b0
push ebx
mov ecx, dword [edi + 8]
push ecx
push str.ENTITY_REF__s__n
mov eax, dword [esi]
push eax
call sub.msvcrt.dll_fprintf
add esp, 0x10
jmp 0x4b3f75
mov eax, dword [esi + 0x7c]
test eax, eax
jne 0x4b3f75
mov eax, esi
call fcn.004b33b0
mov eax, dword [esi]
push eax
push 9
push 1
push str.NOTATION_n
call sub.msvcrt.dll_fwrite
jmp 0x4b409d
mov ecx, dword [esi + 0x7c]
test ecx, ecx
je 0x4b47fc
mov edx, dword [esi]
push edx
push 0x1b
push 1
push str.Error__DOCUMENT_found_here_n
call sub.msvcrt.dll_fwrite
jmp 0x4b3fd7
mov eax, esi
call fcn.004b3b10
jmp 0x4b3f05
mov eax, esi
call fcn.004b33b0
test edi, edi
je 0x4b4844
cmp dword [edi + 4], 0xf
je 0x4b45f1
sub esp, 0xc
mov edx, 0x13a1
push str.Node_is_not_an_element_declaration
mov eax, esi
call fcn.004b33f0
add esp, 0x10
jmp 0x4b3f05
mov eax, esi
call fcn.004b33b0
test edi, edi
je 0x4b4865
cmp dword [edi + 4], 0x10
je 0x4b4448
sub esp, 0xc
mov edx, 0x13a0
push str.Node_is_not_an_attribute_declaration
jmp 0x4b4149
mov eax, esi
call fcn.004b33b0
test edi, edi
je 0x4b4886
cmp dword [edi + 4], 0x11
je 0x4b46d3
sub esp, 0xc
mov edx, 0x13a2
push str.Node_is_not_an_entity_declaration
jmp 0x4b4149
mov eax, esi
call fcn.004b3c00
jmp 0x4b3f05
mov eax, dword [esi + 0x7c]
test eax, eax
jne 0x4b3f05
mov eax, esi
call fcn.004b33b0
mov eax, dword [esi]
push eax
push 0xe
push 1
push str.INCLUDE_START_n
call sub.msvcrt.dll_fwrite
jmp 0x4b3f34
mov eax, dword [esi + 0x7c]
test eax, eax
jne 0x4b3f75
mov eax, esi
call fcn.004b33b0
push eax
mov eax, dword [edi + 8]
push eax
push str.PI__s_n
jmp 0x4b40c1
mov eax, dword [esi + 0x7c]
test eax, eax
jne 0x4b3f75
mov eax, esi
call fcn.004b33b0
mov ebx, dword [esi]
push ebx
push 8
push 1
push str.COMMENT_n
call sub.msvcrt.dll_fwrite
jmp 0x4b409d
mov eax, dword [esi + 0x7c]
test eax, eax
jne 0x4b3f75
mov eax, esi
call fcn.004b33b0
mov eax, dword [esi]
push eax
push 0xe
push 1
push str.DOCUMENT_TYPE_n
call sub.msvcrt.dll_fwrite
jmp 0x4b409d
mov eax, dword [esi + 0x7c]
test eax, eax
jne 0x4b3f75
mov eax, esi
call fcn.004b33b0
mov eax, dword [esi]
push eax
push 0xe
push 1
push str.DOCUMENT_FRAG_n
call sub.msvcrt.dll_fwrite
jmp 0x4b409d
mov edx, dword [esi + 0x7c]
test edx, edx
jne 0x4b3f75
mov eax, esi
call fcn.004b33b0
mov eax, dword [esi]
push eax
push 7
push 1
push str.ENTITY_n
call sub.msvcrt.dll_fwrite
jmp 0x4b409d
mov edx, dword [edi + 0x30]
test edx, edx
jne 0x4b4407
mov edx, dword [edi + 0x2c]
test edx, edx
je 0x4b3fd0
mov eax, esi
call fcn.004b3e90
mov eax, dword [edi + 4]
jmp 0x4b3fae
mov eax, esi
call fcn.004b33b0
jmp 0x4b3f87
push eax
push eax
mov ebx, dword [edi + 8]
push ebx
mov ecx, dword [edi + 0x20]
push ecx
call fcn.00456380
add esp, 0x10
mov ebx, eax
test eax, eax
je 0x4b3fd0
mov eax, esi
call fcn.004b33b0
mov edx, dword [esi + 0x7c]
test edx, edx
jne 0x4b3fd0
mov eax, dword [ebx + 0x30]
cmp eax, 5
ja case.0x4b4304.0
jmp dword [eax*4 + 0x75fb60]
push eax
mov ecx, dword [ebx + 0x30]
push ecx
push str.ENTITY__d__
mov edx, dword [esi]
push edx
call sub.msvcrt.dll_fprintf
add esp, 0xc
mov eax, dword [ebx + 8]
push eax
push 0x75f7d0
mov eax, dword [esi]
push eax
call sub.msvcrt.dll_fprintf
mov eax, dword [ebx + 0x34]
add esp, 0x10
test eax, eax
jne 0x4b48c8
mov ecx, dword [ebx + 0x38]
test ecx, ecx
jne 0x4b48a7
mov eax, dword [ebx + 0x40]
test eax, eax
jne 0x4b48e9
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x4b3fd0
mov eax, esi
call fcn.004b33b0
mov edx, dword [esi]
push edx
push 8
push 1
push 0x75f7d4
call sub.msvcrt.dll_fwrite
mov eax, esi
add esp, 0x10
mov edx, dword [ebx + 0x28]
call fcn.004b3a60
push eax
push eax
mov eax, dword [esi]
push eax
push 0xa
call sub.msvcrt.dll_fputc
add esp, 0x10
jmp 0x4b3fd0
mov eax, dword [esi]
push eax
push 0x1a
push 1
push str.EXTERNAL_PARAMETER_ENTITY
call sub.msvcrt.dll_fwrite
jmp 0x4b431d
mov eax, dword [esi]
push eax
push 0x1a
push 1
push str.INTERNAL_PARAMETER_ENTITY
call sub.msvcrt.dll_fwrite
jmp 0x4b431d
mov eax, dword [esi]
push eax
push 0x21
push 1
push str.EXTERNAL_GENERAL_UNPARSED_ENTITY
call sub.msvcrt.dll_fwrite
jmp 0x4b431d
mov eax, dword [esi]
push eax
push 0x1f
push 1
push str.EXTERNAL_GENERAL_PARSED_ENTITY
call sub.msvcrt.dll_fwrite
jmp 0x4b431d
mov eax, dword [esi]
push eax
push 0x18
push 1
push str.INTERNAL_GENERAL_ENTITY
call sub.msvcrt.dll_fwrite
jmp 0x4b431d
mov eax, esi
call fcn.004b3cf0
mov eax, dword [edi + 4]
cmp eax, 1
jne 0x4b3fae
jmp 0x4b42a8
mov eax, esi
call fcn.004b33b0
mov ecx, dword [esi]
push ecx
push 8
push 1
push 0x75f7d4
call sub.msvcrt.dll_fwrite
mov edx, dword [edi + 0x28]
mov eax, esi
call fcn.004b3a60
pop eax
pop edx
jmp 0x4b4387
mov eax, dword [edi + 8]
test eax, eax
je 0x4b4955
mov ecx, dword [esi + 0x7c]
test ecx, ecx
je 0x4b4991
mov eax, dword [edi + 0x3c]
test eax, eax
je 0x4b493c
mov ebx, dword [esi + 0x7c]
test ebx, ebx
jne 0x4b3fd7
push ecx
push eax
push str._for__s
mov edx, dword [esi]
push edx
call sub.msvcrt.dll_fprintf
mov eax, dword [esi + 0x7c]
add esp, 0x10
test eax, eax
jne 0x4b3fd7
mov eax, dword [edi + 0x28]
cmp eax, 0xa
ja case.0x4b4499.0
jmp dword [eax*4 + 0x75fb78]
mov eax, dword [esi]
push eax
push 0xa
push 1
push str._NOTATION
call sub.msvcrt.dll_fwrite
add esp, 0x10
mov eax, dword [edi + 0x34]
test eax, eax
je 0x4b451e
mov ebx, eax
mov dword [ebp - 0x13ac], 0
mov eax, dword [ebp - 0x13ac]
test eax, eax
je 0x4b4971
push eax
mov eax, dword [ebx + 4]
push eax
push 0x75f884
mov ecx, dword [esi]
push ecx
call sub.msvcrt.dll_fprintf
mov ebx, dword [ebx]
add esp, 0x10
test ebx, ebx
je 0x4b4aa1
mov edx, dword [ebp - 0x13ac]
inc edx
mov dword [ebp - 0x13ac], edx
cmp dword [ebp - 0x13ac], 4
jle 0x4b44c7
mov eax, dword [esi]
push eax
push 4
push 1
push str...._
call sub.msvcrt.dll_fwrite
add esp, 0x10
mov eax, dword [edi + 0x2c]
cmp eax, 3
je 0x4b4ab2
ja 0x4b49d9
cmp eax, 2
je 0x4b4ac3
mov ebx, dword [edi + 0x30]
test ebx, ebx
jne 0x4b4a74
push eax
push eax
mov eax, dword [esi]
push eax
push 0xa
call sub.msvcrt.dll_fputc
add esp, 0x10
jmp 0x4b3fd7
mov edx, dword [esi]
push edx
push 0xc
push 1
push str._ENUMERATION
jmp 0x4b44ac
mov ecx, dword [esi]
push ecx
push 9
push 1
push str._NMTOKENS
jmp 0x4b44ac
mov ebx, dword [esi]
push ebx
push 8
push 1
push str._NMTOKEN
jmp 0x4b44ac
mov eax, dword [esi]
push eax
push 9
push 1
push str._ENTITIES
jmp 0x4b44ac
mov eax, dword [esi]
push eax
push 7
push 1
push str._ENTITY
jmp 0x4b44ac
mov eax, dword [esi]
push eax
push 7
push 1
push str._IDREFS
jmp 0x4b44ac
mov eax, dword [esi]
push eax
push 6
push 1
push str._IDREF
jmp 0x4b44ac
mov eax, dword [esi]
push eax
push 3
push 1
push 0x75f8ce
jmp 0x4b44ac
mov eax, dword [esi]
push eax
push 6
push 1
push str._CDATA
jmp 0x4b44ac
mov edx, dword [edi + 8]
test edx, edx
je 0x4b490a
mov eax, dword [esi + 0x7c]
test eax, eax
jne 0x4b3fd7
mov eax, dword [esi]
push eax
push 9
push 1
push str.ELEMDECL_
call sub.msvcrt.dll_fwrite
add esp, 0x10
mov eax, esi
mov edx, dword [edi + 8]
call fcn.004b3a60
push eax
push eax
mov eax, dword [esi]
push eax
push 0x29
call sub.msvcrt.dll_fputc
mov eax, dword [esi + 0x7c]
add esp, 0x10
test eax, eax
jne 0x4b3fd7
mov eax, dword [edi + 0x24]
cmp eax, 4
ja case.default.0x4b4647
jmp dword [eax*4 + 0x75fba4]
mov ecx, dword [esi]
push ecx
push 8
push 1
push str.__MIXED
call sub.msvcrt.dll_fwrite
add esp, 0x10
cmp dword [edi + 4], 1
je 0x4b4544
mov eax, dword [edi + 0x28]
test eax, eax
je 0x4b4544
mov byte [ebp - 0x13a8], 0
lea ebx, [ebp - 0x13a8]
push 1
push eax
push 0x1388
push ebx
call fcn.00457e60
pop eax
pop edx
mov byte [ebp - 0x20], 0
mov eax, dword [esi]
push eax
push ebx
call sub.msvcrt.dll_fputs
add esp, 0x10
jmp 0x4b4544
mov ebx, dword [esi]
push ebx
push 5
push 1
push str.__ANY
jmp 0x4b465a
mov eax, dword [esi]
push eax
push 7
push 1
push str.__EMPTY
jmp 0x4b465a
mov eax, dword [esi]
push eax
push 0xb
push 1
push str.__UNDEFINED
jmp 0x4b465a
mov eax, dword [edi + 8]
test eax, eax
je 0x4b4923
mov eax, dword [esi + 0x7c]
test eax, eax
jne 0x4b3fd7
mov ebx, dword [esi]
push ebx
push 0xb
push 1
push str.ENTITYDECL_
call sub.msvcrt.dll_fwrite
add esp, 0x10
mov edx, dword [edi + 8]
mov eax, esi
call fcn.004b3a60
push ecx
push ecx
mov edx, dword [esi]
push edx
push 0x29
call sub.msvcrt.dll_fputc
mov eax, dword [esi + 0x7c]
add esp, 0x10
test eax, eax
jne 0x4b3fd7
mov eax, dword [edi + 0x30]
cmp eax, 6
ja case.0x4b4729.0
jmp dword [eax*4 + 0x75fbb8]
mov eax, dword [esi]
push eax
push 0xd
push 1
push str.__predefined_n
call sub.msvcrt.dll_fwrite
add esp, 0x10
mov ebx, dword [edi + 0x34]
test ebx, ebx
jne 0x4b4a32
mov eax, dword [edi + 0x38]
test eax, eax
jne 0x4b4a11
mov eax, dword [edi + 0x40]
test eax, eax
jne 0x4b4a53
mov eax, dword [edi + 0x28]
test eax, eax
je 0x4b3fd7
mov eax, esi
call fcn.004b33b0
mov eax, dword [esi]
push eax
push 9
push 1
push str._content
call sub.msvcrt.dll_fwrite
add esp, 0x10
mov edx, dword [edi + 0x28]
mov eax, esi
call fcn.004b3a60
jmp 0x4b4544
mov eax, dword [esi]
push eax
push 0x15
push 1
push str.__external_parameter_n
jmp 0x4b473c
mov eax, dword [esi]
push eax
push 0xc
push 1
push str.__parameter_n
jmp 0x4b473c
mov eax, dword [esi]
push eax
push 0xb
push 1
push str.__unparsed_n
jmp 0x4b473c
mov eax, dword [esi]
push eax
push 0x12
push 1
push str.__external_parsed_n
jmp 0x4b473c
mov eax, dword [esi]
push eax
push 0xb
push 1
push str.__internal_n
jmp 0x4b473c
mov eax, esi
call fcn.004b33b0
jmp 0x4b3ff3
mov eax, esi
call fcn.004b33b0
jmp 0x4b4101
mov eax, esi
call fcn.004b33b0
mov ecx, dword [esi]
push ecx
push 8
push 1
push str.ELEMENT
call sub.msvcrt.dll_fwrite
mov eax, dword [edi + 0x24]
add esp, 0x10
test eax, eax
je 0x4b4835
mov edx, dword [eax + 0xc]
test edx, edx
jne 0x4b49be
mov edx, dword [edi + 8]
mov eax, esi
call fcn.004b3a60
jmp 0x4b4066
mov ebx, dword [esi + 0x7c]
test ebx, ebx
jne 0x4b3f05
mov ecx, dword [esi]
push ecx
push 0x1c
push 1
push str.Element_declaration_is_NULL_n
call sub.msvcrt.dll_fwrite
jmp 0x4b3f34
mov edi, dword [esi + 0x7c]
test edi, edi
jne 0x4b3f05
mov ebx, dword [esi]
push ebx
push 0x1e
push 1
push str.Attribute_declaration_is_NULL_n
call sub.msvcrt.dll_fwrite
jmp 0x4b3f34
mov eax, dword [esi + 0x7c]
test eax, eax
jne 0x4b3f05
mov eax, dword [esi]
push eax
push 0x1b
push 1
push str.Entity_declaration_is_NULL_n
call sub.msvcrt.dll_fwrite
jmp 0x4b3f34
mov eax, esi
call fcn.004b33b0
push edx
mov eax, dword [ebx + 0x38]
push eax
push str.SystemID_s_n
mov eax, dword [esi]
push eax
call sub.msvcrt.dll_fprintf
add esp, 0x10
jmp 0x4b434a
mov eax, esi
call fcn.004b33b0
push eax
mov eax, dword [ebx + 0x34]
push eax
push str.ExternalID_s_n
mov eax, dword [esi]
push eax
call sub.msvcrt.dll_fprintf
add esp, 0x10
jmp 0x4b433f
mov eax, esi
call fcn.004b33b0
push eax
mov eax, dword [ebx + 0x40]
push eax
push str.URI_s_n
mov eax, dword [esi]
push eax
call sub.msvcrt.dll_fprintf
add esp, 0x10
jmp 0x4b4355
sub esp, 0xc
mov edx, 0x1397
mov eax, esi
push str.Element_declaration_has_no_name
call fcn.004b33f0
jmp 0x4b4631
sub esp, 0xc
mov edx, 0x1397
mov eax, esi
push str.Entity_declaration_has_no_name
call fcn.004b33f0
jmp 0x4b4713
sub esp, 0xc
mov edx, 0x1398
mov eax, esi
push str.Node_attribute_declaration_has_no_element_name
call fcn.004b33f0
jmp 0x4b4483
sub esp, 0xc
mov edx, 0x1397
mov eax, esi
push str.Node_attribute_declaration_has_no_name
call fcn.004b33f0
add esp, 0x10
jmp 0x4b445e
push eax
mov eax, dword [ebx + 4]
push eax
push str.___s
jmp 0x4b44df
mov eax, dword [esi]
push eax
push 0xb
push 1
push str.TEXT_no_enc
jmp 0x4b4031
push edx
push eax
push str.ATTRDECL__s_
mov eax, dword [esi]
push eax
call sub.msvcrt.dll_fprintf
add esp, 0x10
jmp 0x4b445e
mov eax, dword [esi]
push eax
push 0xa
push 1
push str._interned_n
call sub.msvcrt.dll_fwrite
jmp 0x4b409d
mov eax, esi
call fcn.004b3a60
push edx
push edx
mov eax, dword [esi]
push eax
push 0x3a
call sub.msvcrt.dll_fputc
add esp, 0x10
jmp 0x4b4835
cmp eax, 4
jne 0x4b4539
mov eax, dword [esi]
push eax
push 6
push 1
push str._FIXED
call sub.msvcrt.dll_fwrite
add esp, 0x10
jmp 0x4b4539
mov ebx, dword [esi]
push ebx
push 9
push 1
push str._compact_n
call sub.msvcrt.dll_fwrite
jmp 0x4b409d
mov eax, esi
call fcn.004b33b0
push eax
mov eax, dword [edi + 0x38]
push eax
push str._SystemID_s_n
mov eax, dword [esi]
push eax
call sub.msvcrt.dll_fprintf
add esp, 0x10
jmp 0x4b475a
mov eax, esi
call fcn.004b33b0
push ecx
mov edx, dword [edi + 0x34]
push edx
push str._ExternalID_s_n
mov eax, dword [esi]
push eax
call sub.msvcrt.dll_fprintf
add esp, 0x10
jmp 0x4b474f
mov eax, esi
call fcn.004b33b0
push ebx
mov ecx, dword [edi + 0x40]
push ecx
push str._URI_s_n
mov edx, dword [esi]
push edx
call sub.msvcrt.dll_fprintf
add esp, 0x10
jmp 0x4b4765
push ecx
push ecx
mov edx, dword [esi]
push edx
push 0x22
call sub.msvcrt.dll_fputc
add esp, 0x10
mov eax, esi
mov edx, dword [edi + 0x30]
call fcn.004b3a60
push eax
push eax
mov eax, dword [esi]
push eax
push 0x22
call sub.msvcrt.dll_fputc
add esp, 0x10
jmp 0x4b4544
push eax
push eax
mov eax, dword [esi]
push eax
push 0x29
call sub.msvcrt.dll_fputc
jmp 0x4b451b
mov eax, dword [esi]
push eax
push 8
push 1
push str._IMPLIED
jmp 0x4b49ee
mov eax, dword [esi]
push eax
push 9
push 1
push str._REQUIRED
jmp 0x4b49ee