Function at 0x414a70
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xac
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x68]
mov dword [esp], eax
mov dword [esp + 0xc], str.XML_file
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
call fcn.00415310
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x64]
sub esp, 4
mov dword [esp + 0x14], 0
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x60]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ebx
mov dword [esp + 4], 0x4150b0
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x24]
mov dword [esp + 8], eax
mov dword [esp], 0x4150e0
call sub.cygxml2_2.dll_xmlReaderForIO
test eax, eax
mov dword [ebp - 0x84], eax
je 0x414ecc
mov eax, dword [ebp + 0x10]
xor esi, esi
add eax, 0xc
mov dword [ebp - 0x94], eax
mov edx, dword [ebp - 0x84]
mov dword [esp], edx
call sub.cygxml2_2.dll_xmlTextReaderRead
test eax, eax
je 0x414e9a
sub eax, 1
jne 0x414e68
mov ecx, dword [ebp - 0x84]
mov dword [esp], ecx
call sub.cygxml2_2.dll_xmlTextReaderNodeType
cmp eax, 0xf
jbe switch.0x00414b70
mov eax, dword [ebp - 0x84]
mov dword [esp], eax
call sub.cygxml2_2.dll_xmlTextReaderNodeType
mov ebx, eax
call sub.cygwin1.dll___getreent
mov dword [esp + 8], ebx
mov dword [esp + 4], str.ERR:__Unknown_XML_node_type__d_n
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov eax, 1
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
jmp dword [eax*4 + 0x41d5c8]
mov eax, dword [ebp - 0x84]
mov dword [esp], eax
call sub.cygxml2_2.dll_xmlTextReaderDepth
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + eax*4 - 0x4c]
lea eax, [eax + eax*4]
lea ebx, [edx + eax*4]
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x414ba9
call eax
mov esi, dword [0x454bd0]
test esi, esi
jne 0x414e14
mov eax, dword [0x454bd8]
mov ebx, dword [ebx + 4]
test eax, eax
mov dword [ebp - 0x88], ebx
je 0x414bc3
mov dword [esp], eax
call sub.cygwin1.dll_free
mov ecx, dword [ebp - 0x88]
mov dword [0x454bd8], 0
mov dword [0x454bd4], 0
test ecx, ecx
jne 0x414c81
mov edx, dword [ebp - 0x84]
mov dword [esp], edx
call sub.cygxml2_2.dll_xmlFreeTextReader
xor eax, eax
jmp 0x414b61
mov ecx, dword [ebp - 0x84]
mov dword [esp], ecx
call sub.cygxml2_2.dll_xmlTextReaderValue
mov ebx, eax
mov eax, dword [0x454bd8]
test eax, eax
mov dword [ebp - 0x6c], eax
je 0x414e1e
mov edx, dword [0x454bd4]
test edx, edx
je 0x41504f
mov eax, dword [ebp - 0x6c]
test eax, eax
je 0x414e56
mov edx, dword [ebp - 0x6c]
mov dword [esp], edx
call sub.cygwin1.dll_strlen
mov dword [esp], ebx
mov edi, eax
call sub.cygwin1.dll_strlen
mov ecx, dword [ebp - 0x6c]
mov dword [esp], ecx
lea eax, [edi + eax + 1]
mov dword [esp + 4], eax
call sub.cygwin1.dll_realloc
mov dword [esp + 4], ebx
mov dword [0x454bd8], eax
mov dword [esp], eax
call sub.cygwin1.dll_strcat
mov dword [esp], ebx
call dword [sym.imp.cygxml2_2.dll_xmlFree]
je 0x414cdc
inc ebp
add byte [ecx - 0x874b], cl
invalid
mov esi, dword [ebp - 0x88]
jmp case.0x414b70.8
mov eax, dword [ebp - 0x84]
mov dword [esp], eax
call sub.cygxml2_2.dll_xmlTextReaderName
mov dword [ebp - 0x90], eax
mov eax, dword [0x454bd8]
test eax, eax
jne 0x415081
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
test eax, eax
je 0x414fd7
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x80], 0
add ebx, 0x14
mov dword [ebp - 0x70], ecx
jmp 0x414ce7
mov eax, dword [ebx]
add dword [ebp - 0x80], 1
mov dword [ebp - 0x70], ebx
add ebx, 0x14
test eax, eax
je 0x414fd7
mov edx, dword [ebp - 0x70]
mov edx, dword [edx + 4]
cmp edx, esi
mov dword [ebp - 0x88], edx
jne 0x414cd3
mov ecx, dword [ebp - 0x90]
mov dword [esp + 4], eax
mov dword [esp], ecx
call sub.cygwin1.dll_strcmp
test eax, eax
jne 0x414cd3
mov eax, dword [ebp - 0x84]
mov dword [esp], eax
call sub.cygxml2_2.dll_xmlTextReaderIsEmptyElement
mov edx, dword [ebp - 0x84]
mov dword [esp], edx
mov dword [ebp - 0x7c], eax
call sub.cygxml2_2.dll_xmlTextReaderDepth
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x78], eax
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x414d48
call eax
mov eax, dword [0x454bd0]
test eax, eax
jne 0x414e14
mov eax, dword [ebp - 0x84]
mov dword [esp], eax
call sub.cygxml2_2.dll_xmlTextReaderMoveToNextAttribute
test eax, eax
je 0x414ef2
mov eax, dword [ebp - 0x84]
mov dword [esp], eax
call sub.cygxml2_2.dll_xmlTextReaderName
mov edx, dword [ebp - 0x84]
mov dword [esp], edx
mov dword [ebp - 0x74], eax
call sub.cygxml2_2.dll_xmlTextReaderValue
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x8c], eax
mov eax, dword [ecx]
test eax, eax
je 0x414f37
mov edx, dword [ebp - 0x70]
mov esi, ecx
mov ebx, dword [ebp - 0x94]
mov edi, dword [edx]
jmp 0x414daf
mov eax, dword [ebx]
mov esi, ebx
add ebx, 0xc
test eax, eax
je 0x414f37
mov dword [esp + 4], edi
mov dword [esp], eax
call sub.cygwin1.dll_strcmp
test eax, eax
jne 0x414da0
mov ecx, dword [ebp - 0x74]
mov dword [esp + 4], ecx
mov eax, dword [esi + 4]
mov dword [esp], eax
call sub.cygwin1.dll_strcmp
test eax, eax
jne 0x414da0
mov eax, dword [ebp - 0x8c]
mov dword [esp], eax
call dword [esi + 8]
mov eax, dword [0x454bd0]
test eax, eax
jne 0x414e14
mov eax, dword [esi]
test eax, eax
je 0x414f37
mov edx, dword [ebp - 0x74]
mov dword [esp], edx
call dword [sym.imp.cygxml2_2.dll_xmlFree]
je 0x414e61
inc ebp
add byte [ebx - 0x8b73], cl
dec dword [ecx + 0x15ff240c]
je 0x414e70
inc ebp
add cl, ch
xor al, 0xff
invalid
invalid
mov eax, 1
jmp 0x414b61
movzx eax, byte [ebx]
test al, al
je 0x414c72
xor edx, edx
nop
lea esi, [esi]
cmp al, 0xd
je 0x414e46
cmp al, 0xa
je 0x414e46
cmp al, 0x20
je 0x414e46
cmp al, 9
nop
jne 0x414c20
add edx, 1
movzx eax, byte [ebx + edx]
test al, al
jne 0x414e30
jmp 0x414c72
mov dword [esp], ebx
call sub.cygwin1.dll_strdup
mov dword [0x454bd8], eax
jmp 0x414c72
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 0x1b
mov dword [esp + 4], 1
mov dword [esp], str.ERR:__Error_in_parsing_XML_n
mov dword [esp + 0xc], eax
call sub.cygwin1.dll_fwrite
mov eax, 1
jmp 0x414b61
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 0x19
mov dword [esp + 4], 1
mov dword [esp], str.ERR:__Read_premature_EOF_n
mov dword [esp + 0xc], eax
call sub.cygwin1.dll_fwrite
mov eax, 1
jmp 0x414b61
call sub.cygwin1.dll___getreent
mov dword [esp + 8], ebx
mov dword [esp + 4], str.ERR:__Unable_to_open_XML_file__s_n
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov eax, 1
jmp 0x414b61
mov eax, dword [ebp - 0x7c]
test eax, eax
je 0x414fbc
mov edx, dword [ebp - 0x70]
mov eax, dword [edx + 0x10]
test eax, eax
je 0x414f16
call eax
mov eax, dword [0x454bd0]
test eax, eax
jne 0x414e14
mov ecx, dword [ebp - 0x70]
mov edi, dword [ecx]
test edi, edi
je 0x414fdd
mov ecx, dword [ebp - 0x90]
mov dword [esp], ecx
call dword [sym.imp.cygxml2_2.dll_xmlFree]
je 0x414f93
inc ebp
add cl, ch
dec edx
std
invalid
invalid
mov edx, dword [ebp - 0x70]
mov ebx, dword [edx]
call sub.cygwin1.dll___getreent
mov ecx, dword [ebp - 0x74]
mov dword [esp + 4], str.ERR:__Cannot_match_attribute__s_in_tag__s.__Valid_attributes_are:_n
mov dword [esp + 0xc], ebx
mov dword [esp + 8], ecx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov eax, dword [ebp + 0x10]
mov edx, dword [eax]
test edx, edx
je 0x414e14
mov esi, eax
add esi, 0xc
jmp 0x414f83
mov edx, dword [esi]
mov dword [ebp + 0x10], esi
add esi, 0xc
test edx, edx
je 0x414e14
mov ecx, dword [ebp - 0x70]
mov eax, dword [ecx]
mov dword [esp], edx
mov dword [esp + 4], eax
call sub.cygwin1.dll_strcmp
test eax, eax
jne 0x414f73
mov eax, dword [ebp + 0x10]
mov ebx, dword [eax + 4]
call sub.cygwin1.dll___getreent
mov dword [esp + 4], str.ERR:_______s_n
mov dword [esp + 8], ebx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
jmp 0x414f73
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0x70]
mov dword [ebp + ecx*4 - 0x4c], eax
mov edx, dword [edx + 8]
mov dword [ebp - 0x88], edx
jmp 0x414f16
mov dword [ebp - 0x88], esi
call sub.cygwin1.dll___getreent
mov edx, dword [ebp - 0x90]
mov dword [esp + 4], str.ERR:__Cannot_match_start_tag__s.__Valid_tags_are:_n
mov dword [esp + 8], edx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov ecx, dword [ebp + 0xc]
mov esi, dword [ecx]
test esi, esi
je 0x414e14
mov ebx, ecx
add ebx, 0x14
jmp 0x415023
mov esi, dword [ebx]
mov dword [ebp + 0xc], ebx
add ebx, 0x14
test esi, esi
je 0x414e14
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x88]
cmp dword [eax + 4], edx
jne 0x415013
call sub.cygwin1.dll___getreent
mov dword [esp + 8], esi
mov dword [esp + 4], str.ERR:_______s_n
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
jmp 0x415013
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 0x1c
mov dword [esp + 4], 1
mov dword [esp], str.ERR:__text_not_allowed_here_n
mov dword [esp + 0xc], eax
call sub.cygwin1.dll_fwrite
mov eax, 1
jmp 0x414b61
mov dword [esp + 0xc], str._parser_body
mov dword [esp + 8], str.readxml
mov dword [esp + 4], 0x5f
mov dword [esp], str.readxml.c
call sub.cygwin1.dll___assert_func
lea esi, [esi]
lea edi, [edi]
push ebp
mov ebp, esp
sub esp, 0x18
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov dword [esp], eax
mov eax, dword [edx + 4]
mov dword [esp + 4], eax
mov eax, dword [edx + 8]
mov dword [esp + 8], eax
call fcn.00415260
xor eax, eax
leave
ret