Function at 0x53d8e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x5b3fb2
mov eax, dword fs:[0]
push eax
sub esp, 0x98
push ebx
push ebp
push esi
push edi
mov eax, dword [0x615370]
xor eax, esp
push eax
lea eax, [esp + 0xac]
mov dword fs:[0], eax
mov eax, dword [esp + 0xf4]
mov esi, ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x28], esi
xor ebp, ebp
mov dword [esp + 0xb4], ebp
mov dword [esp + 0x2c], vtable.CxAutoArray_unsigned_char_.0
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebp
lea ecx, [esp + 0x2c]
mov byte [esp + 0xb4], 2
mov ebx, 8
push ecx
mov ecx, dword [esp + 0xc4]
cmp dword [esp + 0xd8], ebx
jae 0x53d960
lea ecx, [esp + 0xc4]
push ecx
mov edx, esp
mov dword [esp + 0x1c], esp
push edx
call fcn.00406c20
push esi
mov byte [esp + 0xc0], 3
call fcn.0053b250
add esp, 4
mov ecx, eax
mov byte [esp + 0xbc], 2
call fcn.00539f30
mov edi, eax
cmp edi, ebp
jne 0x53d9fd
mov eax, dword [esp + 0x30]
cmp eax, ebp
je 0x53d9a4
push eax
call fcn.00588add
add esp, 4
cmp dword [esp + 0xd4], ebx
jb 0x53d9bd
mov eax, dword [esp + 0xc0]
push eax
call fcn.005851f0
add esp, 4
xor ecx, ecx
cmp dword [esp + 0xf0], 0x10
mov dword [esp + 0xd4], 7
mov dword [esp + 0xd0], ebp
mov word [esp + 0xc0], cx
jb 0x53d9f3
mov edx, dword [esp + 0xdc]
push edx
call fcn.005851f0
add esp, 4
mov eax, 0x80004005
jmp 0x53e00f
lea eax, [edi + 1]
push eax
call fcn.00587d67
mov ebx, dword [esp + 0x34]
add esp, 4
push edi
mov esi, eax
push ebx
push esi
call fcn.0058e380
add esp, 0xc
lea ecx, [esp + 0x5c]
push ecx
mov byte [esi + edi], 0
call fcn.00524ff0
push 1
push ebp
push esi
lea ecx, [esp + 0x68]
mov byte [esp + 0xc0], 4
call fcn.005263a0
push esi
call fcn.00588add
mov esi, dword [esp + 0x78]
add esp, 4
cmp esi, ebp
je 0x53da77
mov edi, edi
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
mov ecx, esi
call eax
test eax, eax
jne 0x53da66
mov esi, dword [esi + 0x28]
cmp esi, ebp
jne 0x53da50
jmp 0x53da77
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
mov ecx, esi
call eax
cmp eax, ebp
jne 0x53db12
mov byte [esp + 0xb4], 2
mov eax, dword [esp + 0x90]
mov dword [esp + 0x5c], vtable.TiXmlDocument.0
cmp eax, 0x6232dc
je 0x53da9e
push eax
call fcn.00588add
add esp, 4
lea ecx, [esp + 0x5c]
call fcn.005248b0
cmp ebx, ebp
je 0x53dab4
push ebx
call fcn.00588add
add esp, 4
cmp dword [esp + 0xd4], 8
jb 0x53dace
mov ecx, dword [esp + 0xc0]
push ecx
call fcn.005851f0
add esp, 4
xor edx, edx
cmp dword [esp + 0xf0], 0x10
mov dword [esp + 0xd4], 7
mov dword [esp + 0xd0], ebp
mov word [esp + 0xc0], dx
jb 0x53d9f3
mov eax, dword [esp + 0xdc]
push eax
call fcn.005851f0
add esp, 4
mov eax, 0x80004005
jmp 0x53e00f
call fcn.005242a0
mov ebx, eax
mov dword [esp + 0x20], ebx
cmp ebx, ebp
je 0x53df7c
jmp 0x53db30
lea edi, [ebx + 0x2c]
mov esi, str.Name
call fcn.005259a0
cmp eax, ebp
je 0x53db49
mov eax, dword [eax + 0x18]
add eax, 8
jmp 0x53db4b
xor eax, eax
cmp dword [esp + 0xf0], 0x10
mov ecx, dword [esp + 0xdc]
jae 0x53db63
lea ecx, [esp + 0xdc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x53db83
test dl, dl
je 0x53db7f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x53db83
add eax, 2
add ecx, 2
test dl, dl
jne 0x53db63
xor eax, eax
jmp 0x53db88
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebp
je 0x53dbc7
mov esi, dword [ebx + 0x28]
cmp esi, ebp
je 0x53dba7
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
mov ecx, esi
call eax
test eax, eax
jne 0x53dbbc
mov esi, dword [esi + 0x28]
cmp esi, ebp
jne 0x53db93
xor eax, eax
mov ebx, eax
mov dword [esp + 0x20], eax
cmp eax, ebp
jne 0x53db30
jmp 0x53df7c
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
mov ecx, esi
call eax
jmp 0x53dba9
lea ecx, [esp + 0x3c]
push ecx
call fcn.0042cda0
lea eax, [ebx + 0x2c]
mov byte [esp + 0xb4], 5
mov ecx, dword [eax + 0x20]
cmp ecx, eax
je 0x53dd95
mov dword [esp + 0x24], ecx
cmp ecx, ebp
je 0x53dd95
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x14]
mov edi, dword [eax + 0x18]
mov edx, dword [0x621148]
mov eax, dword [edx + 0xc]
mov ecx, 0x621148
add ebx, 8
add edi, 8
call eax
lea esi, [eax + 0x10]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], 0
mov eax, edi
mov byte [esp + 0xb4], 6
lea ecx, [eax + 1]
nop
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x53dc30
push 0
push 0
sub eax, ecx
push eax
push edi
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ebp, eax
mov eax, dword [esi - 8]
mov edx, 1
sub edx, dword [esi - 4]
lea ecx, [ebp + 1]
sub eax, ecx
or eax, edx
jge 0x53dc6f
lea eax, [esp + 0x18]
call fcn.00406a80
mov esi, dword [esp + 0x18]
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x53dc74
push ebp
push esi
sub eax, edx
push eax
push edi
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
xor ecx, ecx
mov word [esi + ebp*2], cx
mov eax, dword [esi - 8]
push eax
push esi
call fcn.0058a3a5
add esp, 8
test eax, eax
jl 0x53e029
cmp eax, dword [esi - 8]
jg 0x53e029
mov dword [esi - 0xc], eax
xor edx, edx
mov word [esi + eax*2], dx
lea eax, [esp + 0x14]
push eax
mov ecx, ebx
call fcn.0040d820
lea ecx, [esp + 0x14]
lea edx, [esp + 0x3c]
mov byte [esp + 0xb4], 7
call fcn.0053ef30
mov edi, eax
lea eax, [esp + 0x18]
call fcn.00406500
mov ebx, dword [esp + 0x1c]
cmp dword [edi + 4], ebx
je 0x53dd0e
test ebx, ebx
je 0x53dcfc
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
push ebx
call edx
mov eax, dword [edi + 4]
test eax, eax
je 0x53dd0b
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [edi + 4], ebx
mov byte [esp + 0xb4], 6
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53dd36
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x20]
mov edx, dword [eax + 0x18]
cmp dword [edx], 0
jne 0x53dd51
mov ecx, dword [eax + 0x14]
cmp dword [ecx], 0
jne 0x53dd51
xor edi, edi
jmp 0x53dd53
mov edi, eax
mov dword [esp + 0x24], edi
mov byte [esp + 0xb4], 5
test ebx, ebx
je 0x53dd6b
mov edx, dword [ebx]
mov eax, dword [edx + 8]
push ebx
call eax
add esi, 0xfffffff0
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53dd87
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
test edi, edi
jne 0x53dbf3
mov ebx, dword [esp + 0x20]
xor ebp, ebp
mov ecx, str.Properties
mov eax, ebx
call fcn.00524a90
cmp eax, ebp
je 0x53df01
call fcn.005242a0
mov ebx, eax
test ebx, ebx
je 0x53df01
jmp 0x53ddc0
mov edi, dword [ebx + 0x20]
mov esi, dword [ebx + 0x18]
add edi, 8
test esi, esi
je 0x53dde8
lea ecx, [ecx]
mov eax, dword [esi]
mov edx, dword [eax + 0x18]
mov ecx, esi
call edx
test eax, eax
jne 0x53e033
mov esi, dword [esi + 0x28]
test esi, esi
jne 0x53ddd0
xor esi, esi
mov eax, dword [0x621148]
mov edx, dword [eax + 0xc]
mov ecx, 0x621148
call edx
add eax, 0x10
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x28]
push eax
push 0
lea ecx, [esp + 0x24]
push ecx
push esi
mov byte [esp + 0xc4], 8
call fcn.0053e080
add esp, 0x10
lea edx, [esp + 0x14]
push edx
mov ecx, edi
call fcn.0040d820
lea ecx, [esp + 0x14]
lea edx, [esp + 0x3c]
mov byte [esp + 0xb4], 9
call fcn.0053ef30
mov edi, eax
lea eax, [esp + 0x18]
call fcn.00406500
mov ebp, dword [esp + 0x1c]
cmp dword [edi + 4], ebp
je 0x53de79
test ebp, ebp
je 0x53de67
mov eax, dword [ebp]
mov ecx, dword [eax + 4]
push ebp
call ecx
mov eax, dword [edi + 4]
test eax, eax
je 0x53de76
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov dword [edi + 4], ebp
mov byte [esp + 0xb4], 8
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53dea1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [ebx + 0x28]
test esi, esi
je 0x53dec0
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
mov ecx, esi
call eax
test eax, eax
jne 0x53e043
mov esi, dword [esi + 0x28]
test esi, esi
jne 0x53dea8
xor esi, esi
mov ebx, esi
mov byte [esp + 0xb4], 5
test ebp, ebp
je 0x53ded9
mov ecx, dword [ebp]
mov edx, dword [ecx + 8]
push ebp
call edx
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53def9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test esi, esi
jne 0x53ddc0
mov edi, dword [esp + 0x38]
mov edx, dword [edi]
mov edx, dword [edx + 0xc]
lea eax, [esp + 0x3c]
push eax
mov ecx, edi
call edx
mov eax, dword [esp + 0x20]
mov ecx, str.Children
call fcn.00524a90
test eax, eax
je 0x53df68
call fcn.005242a0
mov esi, eax
test esi, esi
je 0x53df68
mov ebx, dword [esp + 0x28]
push ebx
push edi
push 0
push esi
call fcn.0053e080
mov esi, dword [esi + 0x28]
add esp, 0x10
test esi, esi
je 0x53df60
mov eax, dword [esi]
mov edx, dword [eax + 0x18]
mov ecx, esi
call edx
test eax, eax
jne 0x53e053
mov esi, dword [esi + 0x28]
test esi, esi
jne 0x53df48
xor eax, eax
mov esi, eax
test eax, eax
jne 0x53df34
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0xb8], 4
call fcn.0053f080
xor ebp, ebp
mov byte [esp + 0xb4], 2
mov eax, dword [esp + 0x90]
mov dword [esp + 0x5c], vtable.TiXmlDocument.0
cmp eax, 0x6232dc
je 0x53dfa3
push eax
call fcn.00588add
add esp, 4
lea ecx, [esp + 0x5c]
call fcn.005248b0
mov eax, dword [esp + 0x30]
cmp eax, ebp
je 0x53dfbd
push eax
call fcn.00588add
add esp, 4
cmp dword [esp + 0xd4], 8
jb 0x53dfd7
mov ecx, dword [esp + 0xc0]
push ecx
call fcn.005851f0
add esp, 4
xor edx, edx
cmp dword [esp + 0xf0], 0x10
mov dword [esp + 0xd4], 7
mov dword [esp + 0xd0], ebp
mov word [esp + 0xc0], dx
jb 0x53e00d
mov eax, dword [esp + 0xdc]
push eax
call fcn.005851f0
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0xac]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa4
ret
push 0x80070057
call fcn.00406af0
mov eax, dword [esi]
mov edx, dword [eax + 0x18]
mov ecx, esi
call edx
mov esi, eax
jmp 0x53ddea
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
mov ecx, esi
call eax
mov esi, eax
jmp 0x53dec2
mov eax, dword [esi]
mov edx, dword [eax + 0x18]
mov ecx, esi
call edx
jmp 0x53df62