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

Disassembly:
sub esp, 0x54
push ebx
push ebp
push esi
mov esi, eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
mov ebx, dword [esi + 0x18]
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x1c]
push edi
mov edi, dword [esp + 0x68]
xor ebp, ebp
mov dword [esp + 0x30], eax
mov eax, dword [edi + 0x10]
mov dword [esp + 0x4c], ecx
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x50], edx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x38], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x1c], ecx
cmp eax, ebp
je 0x51e56ff
cmp dword [eax], 1
jne 0x51e56ff
push edi
call fcn.051dd580
add esp, 4
mov dword [esp + 0x3c], eax
cmp ebx, ebp
je 0x51e4d8e
mov edx, dword [esp + 0x1c]
push ebx
push edx
call fcn.051de860
add esp, 8
mov dword [esp + 0x38], eax
cmp eax, ebp
jne 0x51e4d8e
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + 0x1c]
call fcn.051deb10
push 0x13
push edi
call fcn.051dd030
add esp, 8
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x54
ret
mov eax, dword [esp + 0x40]
dec eax
mov dword [esp + 0x24], 0x51de290
cmp eax, 0xc
ja case.default.0x51e4da4
jmp dword [eax*4 + 0x51e5714]
mov eax, 0x51df9a0
jmp 0x51e4e4b
mov eax, 0x51dfae0
jmp 0x51e4e4b
mov eax, 0x51dfd70
jmp 0x51e4e3f
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x70], ebp
cmp eax, 5
je 0x51e4dd8
cmp eax, 3
jne 0x51e4de3
mov eax, 0x51df730
cmp dword [esp + 0x50], ebp
je 0x51e4de8
mov eax, 0x51df6c0
mov dword [esp + 0x24], 0x51de490
jmp 0x51e4e4f
mov dword [esp + 0x70], ebp
mov eax, 0x51df810
jmp 0x51e4e4f
mov dword [esp + 0x70], ebp
mov eax, 0x51df8b0
jmp 0x51e4e4f
mov dword [esp + 0x70], ebp
mov eax, 0x51dfba0
jmp 0x51e4e4f
mov dword [esp + 0x70], ebp
mov eax, 0x51dfb10
jmp 0x51e4e4f
mov eax, 0x51dfca0
jmp 0x51e4e3f
mov eax, 0x51df8f0
jmp 0x51e4e4b
mov eax, 0x51dfc10
jmp 0x51e4e4b
mov eax, 0x51dfb50
jmp 0x51e4e4b
mov eax, 0x51df6a0
mov dword [esp + 0x70], ebp
mov dword [esp + 0x24], 0x51de490
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x20], eax
cmp eax, ebp
jne 0x51e4e6e
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + 0x1c]
call fcn.051deb10
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x54
ret
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 4]
mov dword [esp + 0x5c], eax
cmp eax, ebp
je 0x51e56cf
cmp dword [eax], ebp
jle 0x51e56cf
mov esi, dword [esi + 8]
xor ebx, ebx
mov dword [esp + 0x48], ebp
mov dword [esp + 0x34], ebx
mov dword [esp + 0x58], ebp
mov dword [esp + 0x10], ebp
cmp esi, 0xffffffff
je 0x51e4eef
mov eax, edi
mov ecx, dword [eax + 0x20]
mov edi, dword [ecx + 8]
lea edx, [esi + esi*4]
lea ecx, [esp + 0x48]
lea ebx, [edi + edx*8]
push ecx
push eax
mov ecx, ebx
mov dword [esp + 0x3c], ebx
call fcn.051e0c40
add esp, 8
test eax, eax
je 0x51e4eef
mov eax, dword [ebx + 4]
cmp eax, 0xffffffff
je 0x51e4ee1
lea edx, [eax + eax*4]
lea ebx, [edi + edx*8]
mov dword [esp + 0x58], 1
jmp 0x51e4eeb
xor ebx, ebx
mov dword [esp + 0x10], 1
mov dword [esp + 0x34], ebx
cmp dword [esp + 0x74], ebp
je 0x51e4f01
mov dword [esp + 0x14], 1
cmp ebx, ebp
je 0x51e4f05
mov dword [esp + 0x14], ebp
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 4]
xor ebp, ebp
mov dword [esp + 0x60], ecx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x54], ebp
lea ebx, [ebx]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x5c]
cmp eax, dword [ecx]
jge 0x51e561e
mov edx, dword [esp + 0x68]
xor ebx, ebx
cmp dword [edx + 8], ebx
jne 0x51e561e
mov ecx, dword [ecx + 8]
mov edx, dword [ecx + eax*4]
mov ecx, dword [esp + 0x1c]
inc eax
mov dword [ecx + 4], edx
mov dword [esp + 0x54], eax
cmp ebp, ebx
jne 0x51e4f74
push 0xc
call dword [0x53f2e4c]
add esp, 4
cmp eax, ebx
je 0x51e55af
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov ebp, eax
mov edi, dword [esp + 0x48]
xor esi, esi
mov dword [esp + 0x2c], ebx
mov edi, edi
mov edx, dword [esp + 0x68]
push esi
push edx
call dword [esp + 0x28]
mov esi, eax
add esp, 8
test esi, esi
je 0x51e54a3
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x51e4fd0
mov ecx, dword [eax]
test ecx, ecx
je 0x51e4fd0
cmp ecx, esi
je 0x51e54a3
mov eax, dword [esp + 0x28]
and eax, 0x800000ff
jns 0x51e4fbf
dec eax
or eax, 0xffffff00
inc eax
jne 0x51e4fd0
mov edx, esi
call fcn.051dba20
test eax, eax
jge 0x51e54a3
mov eax, dword [esp + 0x70]
test eax, eax
je 0x51e500b
mov edx, dword [eax]
test edx, edx
je 0x51e500b
cmp edx, esi
je 0x51e54a3
mov ecx, dword [esp + 0x28]
and ecx, 0x800000ff
jns 0x51e4ffa
dec ecx
or ecx, 0xffffff00
inc ecx
jne 0x51e500b
mov ecx, esi
call fcn.051dba20
test eax, eax
jge 0x51e54a3
inc dword [esp + 0x28]
cmp dword [esp + 0x4c], 5
ja case.0x51e5044.5
mov edx, dword [esp + 0x4c]
jmp dword [edx*4 + 0x51e5748]
cmp dword [esp + 0x50], 0
mov eax, dword [esi + 4]
jne 0x51e50f4
dec eax
cmp eax, 0x14
ja case.0x51e5044.5
movzx eax, byte [eax + 0x51e576c]
jmp dword [eax*4 + 0x51e5760]
cmp dword [esp + 0x40], 9
jne 0x51e5098
cmp dword [esp + 0x10], 0
je 0x51e5079
inc ebx
cmp ebx, edi
jne case.0x51e5044.5
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 4]
push esi
push edx
push ebp
call fcn.051dddd0
add esp, 0xc
jmp 0x51e5250
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 4]
push esi
push eax
push ebp
mov dword [esp + 0x38], 1
call fcn.051dddd0
add esp, 0xc
jmp 0x51e547b
cmp dword [esp + 0x10], 0
mov dword [esp + 0x2c], 1
je 0x51e50d2
inc ebx
cmp ebx, edi
jne case.0x51e5044.5
push esi
push ebp
call fcn.051de010
add esp, 8
test eax, eax
jge 0x51e525f
mov ecx, dword [esp + 0x68]
mov dword [ecx + 8], 0xf
jmp 0x51e525f
push esi
push ebp
call fcn.051de010
add esp, 8
test eax, eax
jge 0x51e548a
mov edx, dword [esp + 0x68]
mov dword [edx + 8], 0xf
jmp 0x51e548a
mov ecx, dword [esp + 0x50]
cmp eax, ecx
jne 0x51e5167
cmp eax, 0x12
jne 0x51e52ec
cmp dword [esp + 0x10], 0
je 0x51e5129
inc ebx
cmp ebx, edi
jne case.0x51e5044.5
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 4]
push esi
push eax
push ebp
call fcn.051dddd0
add esp, 0xc
jmp 0x51e50ba
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 4]
push esi
push ecx
push ebp
mov dword [esp + 0x38], 1
call fcn.051dddd0
add esp, 0xc
jmp 0x51e50dc
push esi
push ebp
call fcn.051de010
add esp, 8
test eax, eax
jge 0x51e548a
mov eax, dword [esp + 0x68]
mov dword [eax + 8], 0xf
jmp 0x51e548a
cmp ecx, 3
jne case.0x51e5044.5
cmp eax, 4
jne case.0x51e5044.5
jmp case.0x51e5044.1
cmp dword [esi + 4], 7
jne case.0x51e5044.5
cmp dword [esp + 0x30], 0
je 0x51e51a8
mov edx, dword [esi + 8]
mov eax, dword [esp + 0x30]
push edx
push eax
call fcn.051ed460
add esp, 8
test eax, eax
je case.0x51e5044.5
cmp dword [esp + 0x10], 0
je 0x51e5471
inc ebx
cmp ebx, edi
je 0x51e50b0
jmp case.0x51e5044.5
mov eax, dword [esp + 0x40]
cmp eax, 3
jne 0x51e5276
cmp dword [esi + 4], 2
jne case.0x51e5044.5
cmp dword [esp + 0x44], 0
jne 0x51e520e
cmp dword [esp + 0x10], 0
je 0x51e50d2
inc ebx
cmp ebx, edi
jne case.0x51e5044.5
push esi
push ebp
call fcn.051de010
add esp, 8
test eax, eax
jge 0x51e525f
mov edx, dword [esp + 0x68]
mov dword [edx + 8], 0xf
jmp 0x51e525f
mov eax, dword [esi + 0x24]
test eax, eax
je case.0x51e5044.5
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x38]
push eax
push ecx
call fcn.051ed460
add esp, 8
test eax, eax
je case.0x51e5044.5
cmp dword [esp + 0x10], 0
je 0x51e50d2
inc ebx
cmp ebx, edi
jne case.0x51e5044.5
push esi
push ebp
call fcn.051de010
add esp, 8
test eax, eax
jge 0x51e525f
mov eax, dword [esp + 0x68]
mov dword [eax + 8], 0xf
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x51e54e8
mov dword [esp + 0x18], ebp
xor ebp, ebp
jmp 0x51e54f7
cmp eax, 9
jne 0x51e529e
cmp dword [esi + 4], 0x12
jne case.0x51e5044.5
cmp dword [esp + 0x10], 0
je 0x51e5129
inc ebx
cmp ebx, edi
je 0x51e5062
jmp case.0x51e5044.5
cmp dword [esi + 4], 1
jne case.0x51e5044.5
cmp dword [esp + 0x44], 0
jne 0x51e52c8
cmp dword [esp + 0x10], 0
je 0x51e5145
inc ebx
cmp ebx, edi
je 0x51e50b0
jmp case.0x51e5044.5
mov eax, dword [esi + 0x24]
test eax, eax
je case.0x51e5044.5
mov ecx, dword [eax + 8]
mov edx, dword [esp + 0x38]
push ecx
push edx
call fcn.051ed460
add esp, 8
test eax, eax
je case.0x51e5044.5
cmp dword [esp + 0x10], 0
je 0x51e5145
inc ebx
cmp ebx, edi
je 0x51e51f3
jmp case.0x51e5044.5
call fcn.051ed190
mov edi, eax
call fcn.051ed1d0
mov ecx, dword [eax]
mov edx, dword [edi]
push 0x30b1
push str...xpath.c
push str.Unimplemented_block_at__s:_d_n
push ecx
call edx
mov edi, dword [esp + 0x58]
add esp, 0x10
jmp case.0x51e5044.5
mov eax, dword [esp + 0x40]
cmp eax, 3
jne 0x51e5344
mov eax, dword [esi + 4]
cmp eax, 2
jmp 0x51e5354
cmp eax, 9
mov eax, dword [esi + 4]
jne 0x51e5351
cmp eax, 0x12
jmp 0x51e5354
cmp eax, 1
jne case.0x51e5044.5
sub eax, 1
je 0x51e540f
sub eax, 1
je 0x51e53c8
sub eax, 0x10
jne case.0x51e5044.5
mov eax, dword [esi + 0xc]
test eax, eax
je case.0x51e5044.5
cmp dword [esp + 0x30], 0
je case.0x51e5044.5
mov ecx, dword [esp + 0x30]
push ecx
push eax
call fcn.051ed460
add esp, 8
test eax, eax
je case.0x51e5044.5
cmp dword [esp + 0x10], 0
je 0x51e5079
inc ebx
cmp ebx, edi
jne case.0x51e5044.5
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 4]
push esi
push ecx
push ebp
call fcn.051dddd0
add esp, 0xc
jmp 0x51e51fd
mov edx, dword [esi + 8]
mov eax, dword [esp + 0x30]
push edx
push eax
call fcn.051ed460
add esp, 8
test eax, eax
je case.0x51e5044.5
cmp dword [esp + 0x44], 0
mov eax, dword [esi + 0x24]
jne 0x51e53fb
test eax, eax
je case.0x51e5044.1
cmp dword [eax + 0xc], 0
jne case.0x51e5044.5
jmp case.0x51e5044.1
test eax, eax
je case.0x51e5044.5
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x38]
jmp 0x51e5196
mov edx, dword [esi + 8]
mov eax, dword [esp + 0x30]
push edx
push eax
call fcn.051ed460
add esp, 8
test eax, eax
je case.0x51e5044.5
cmp dword [esp + 0x44], 0
jne 0x51e5443
cmp dword [esi + 0x24], 0
jne case.0x51e5044.5
cmp dword [esp + 0x10], 0
je 0x51e5471
inc ebx
cmp ebx, edi
je 0x51e51f3
jmp case.0x51e5044.5
mov eax, dword [esi + 0x24]
test eax, eax
je case.0x51e5044.5
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x38]
push edx
push eax
call fcn.051ed460
add esp, 8
test eax, eax
je case.0x51e5044.5
cmp dword [esp + 0x10], 0
je 0x51e5471
inc ebx
cmp ebx, edi
je 0x51e5246
jmp case.0x51e5044.5
push esi
push ebp
call fcn.051de010
add esp, 8
test eax, eax
jge 0x51e548a
mov ecx, dword [esp + 0x68]
mov dword [ecx + 8], 0xf
cmp dword [esp + 0x14], 0
jne 0x51e55f5
mov edx, dword [esp + 0x68]
cmp dword [edx + 8], 0
je 0x51e4f80
mov ecx, dword [esp + 0x68]
cmp dword [ecx + 8], 0
jne 0x51e561e
cmp dword [esp + 0x34], 0
je 0x51e557e
mov edi, dword [ebp]
test edi, edi
jle 0x51e4f20
cmp dword [esp + 0x58], 0
mov ebx, dword [esp + 0x2c]
mov esi, ecx
push ebx
je 0x51e5507
mov eax, dword [esp + 0x4c]
push eax
push eax
mov eax, dword [esp + 0x40]
push edi
push ebp
call fcn.051e49a0
jmp 0x51e5514
push 0
push ebp
push eax
call dword [esp + 0x30]
add esp, 0xc
mov dword [esp + 0x18], eax
cmp dword [esp + 0x74], 0
je 0x51e4f20
jmp 0x51e561e
mov edx, dword [esp + 0x38]
push edi
push ebp
push edx
push esi
call fcn.051e47b0
add esp, 0x14
cmp dword [esi + 8], 0
jne 0x51e5616
test eax, eax
jne 0x51e5535
push ebx
mov edi, ebp
call fcn.051de650
add esp, 4
jmp 0x51e4f20
cmp dword [ebp], 0
jle 0x51e4f20
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x51e5559
cmp edi, eax
je 0x51e5551
push 1
push ebp
push ecx
jmp 0x51e5563
mov dword [esp + 0x18], ebp
xor ebp, ebp
jmp 0x51e556e
xor edx, edx
cmp edi, eax
setne dl
push edx
push ebp
push ecx
call dword [esp + 0x30]
mov dword [esp + 0x24], eax
add esp, 0xc
cmp dword [esp + 0x74], 0
je 0x51e4f20
jmp 0x51e561e
cmp dword [ebp], 0
jle 0x51e4f20
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x51e559b
mov dword [esp + 0x18], ebp
xor ebp, ebp
jmp 0x51e4f20
push 0
push ebp
push eax
call dword [esp + 0x30]
add esp, 0xc
mov dword [esp + 0x18], eax
jmp 0x51e4f20
push str.creating_nodeset_n
xor esi, esi
call fcn.051dcf00
add esp, 4
xor ebp, ebp
mov dword [esp + 0x28], ebx
jmp 0x51e561e
mov dword [esp + 0x28], 0
call fcn.051ed190
mov esi, eax
call fcn.051ed1d0
mov eax, dword [eax]
mov ecx, dword [esi]
push 0x3060
push str...xpath.c
push str.Internal_error_at__s:_d_n
push eax
call ecx
add esp, 0x10
jmp 0x51e561e
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x51e5605
mov dword [esp + 0x18], ebp
xor ebp, ebp
jmp 0x51e561e
push 0
push ebp
push eax
call dword [esp + 0x30]
add esp, 0xc
mov dword [esp + 0x18], eax
jmp 0x51e561e
mov dword [esp + 0x28], 0
mov ebx, dword [esp + 0x3c]
xor esi, esi
cmp dword [ebx + 8], esi
je 0x51e564b
cmp dword [ebx + 0x1c], esi
je 0x51e564b
mov eax, dword [esp + 0x68]
mov edx, dword [eax + 0x10]
mov dword [edx + 8], 1
mov eax, dword [eax + 0x10]
mov ecx, dword [ebx + 0x1c]
mov dword [eax + 0x1c], ecx
mov dword [ebx + 0x1c], esi
mov dword [ebx + 8], esi
mov eax, dword [esp + 0x1c]
call fcn.051deb10
mov eax, dword [esp + 0x18]
cmp eax, esi
jne 0x51e5676
cmp ebp, esi
je 0x51e5669
cmp dword [ebp], esi
jne 0x51e5669
mov eax, ebp
jmp 0x51e5672
push esi
call fcn.051ddc80
add esp, 4
mov dword [esp + 0x18], eax
cmp ebp, esi
je 0x51e5687
cmp ebp, eax
je 0x51e5687
push ebp
call fcn.051de5f0
add esp, 4
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov eax, esi
call fcn.051e10a0
mov edx, dword [esp + 0x68]
push eax
push edx
call fcn.051dd5e0
mov eax, dword [esp + 0x68]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x78]
add esp, 8
test eax, eax
je 0x51e56c3
push eax
call dword [0x53f2e48]
add esp, 4
mov dword [esi + 0x78], 0
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x3c]
mov eax, esi
call fcn.051deb10
xor edi, edi
mov eax, esi
call fcn.051e10a0
mov ecx, dword [esp + 0x68]
push eax
push ecx
call fcn.051dd5e0
add esp, 8
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x54
ret
push 0xb
push edi
call fcn.051dd030
add esp, 8
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x54
ret