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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x38]
cmp eax, dword [ecx + 8]
jbe 0x87ac36
sub esp, 0xb8
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
lea edi, [esp + 0x84]
xor eax, eax
call fcn.00460deb
lea ecx, [esp + 0x18]
mov dword [esp + 0x5c], ecx
mov edx, dword [esp + 0xcc]
mov ebx, dword [edx + 0x14]
mov dword [esp + 0x30], ebx
mov ebp, dword [edx + 0xc]
mov dword [esp + 0x54], ebp
mov esi, edx
mov edx, dword [edx + 0x10]
mov dword [esp + 0x2c], edx
xor edi, edi
xor eax, eax
mov dword [esp + 0x28], eax
xor eax, eax
jmp 0x87a724
dec ebx
mov ebp, edi
cmp ecx, ebx
jg 0x87a872
cmp ebx, esi
jae 0x87ac23
mov edi, ebp
add ebp, ebx
cmp byte [ebp], 0x3c
jne 0x87a574
mov dword [esp + 0x48], ebx
mov ebp, dword [esp + 0x28]
jmp 0x87a5a0
inc ecx
mov ebx, dword [esp + 0x48]
cmp ecx, ebx
jge 0x87a6ad
cmp ecx, esi
jae 0x87ac1a
mov dword [esp + 0x44], ecx
lea ebx, [edi + ecx]
cmp byte [ebx], 0x3c
je 0x87a635
xor ebx, ebx
test bl, bl
je 0x87a59b
cmp ecx, ebp
jb 0x87ac13
lea eax, [esp + 0x84]
mov dword [esp], eax
mov edx, dword [esp + 0x30]
sub edx, ebp
mov esi, edx
neg edx
sar edx, 0x1f
and edx, ebp
add edx, edi
mov dword [esp + 4], edx
sub ecx, ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], esi
call fcn.004b6e20
lea eax, [esp + 0x84]
mov dword [esp], eax
lea ecx, [0xb8eb28]
mov dword [esp + 4], ecx
mov dword [esp + 8], 4
call fcn.004b6ef0
mov ecx, dword [esp + 0x44]
lea ebp, [ecx + 1]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x54]
jmp 0x87a59b
mov dword [esp + 0x40], ebp
mov eax, dword [esp + 0x30]
sub eax, ecx
mov ebx, eax
neg eax
sar eax, 0x1f
and eax, ecx
add eax, edi
mov dword [esp], eax
sub esi, ecx
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
call fcn.004b8d10
mov eax, dword [0x10d9154]
mov ecx, dword [str.__DOCTYPE]
mov edx, dword [esp + 0xc]
cmp dword [esp + 0x10], eax
jge 0x87a696
xor eax, eax
xor eax, 1
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x54]
mov ebx, eax
mov eax, dword [esp + 0x34]
jmp 0x87a5be
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00402a10
movzx eax, byte [esp + 0xc]
jmp 0x87a674
movzx ebx, byte [esp + 0x60]
cmp byte [esp + 0xc0], bl
je 0x87a6d3
cmp bl, 5
jne 0x87a847
mov ecx, ebx
movzx ebx, byte [esp + 0x61]
test bl, bl
je 0x87a7e5
mov ecx, dword [esp + 0x38]
cmp ecx, edx
jne 0x87a6ed
movzx ebx, byte [esp + 0x60]
cmp byte [esp + 0xc0], bl
je 0x87aaa9
lea edi, [esp + 0xc0]
lea esi, [esp + 0x60]
call fcn.004612e2
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
xor eax, eax
mov ecx, dword [esp + 0x5c]
mov edx, ebx
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0xcc]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x54]
cmp edi, edx
je 0x87a9a6
ja 0x87ac2c
mov dword [esp + 0x38], edi
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov eax, edi
mov edi, esp
lea esi, [esp + 0xc0]
call fcn.004612e2
sub ebx, eax
mov dword [esp + 0x50], ebx
mov esi, ebx
neg ebx
sar ebx, 0x1f
and ebx, eax
add ebx, ebp
mov dword [esp + 0x58], ebx
mov dword [esp + 0xc], ebx
sub edx, eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], esi
call fcn.0087ac40
lea edi, [esp + 0x78]
mov esi, dword [esp + 0x5c]
call fcn.004612e2
mov eax, dword [esp + 0x24]
mov dword [esp + 0x34], eax
lea edi, [esp + 0x60]
mov esi, dword [esp + 0x5c]
call fcn.004612e2
mov ecx, dword [esp + 0x38]
lea edx, [ecx + eax]
mov dword [esp + 0x3c], edx
movzx ebx, byte [esp + 0xc0]
test bl, bl
jne 0x87a88a
cmp byte [esp + 0x60], bl
je 0x87a87b
lea ebx, [ecx + eax - 1]
mov ebp, dword [esp + 0x54]
mov esi, dword [esp + 0x2c]
jmp 0x87a577
mov ebx, dword [esp + 0x38]
lea esi, [ebx + eax - 2]
cmp cl, 5
jne 0x87a7f6
lea esi, [ebx + eax - 4]
mov ebx, dword [esp + 0x30]
cmp esi, ebx
ja 0x87abf8
cmp esi, ebp
jb 0x87abef
lea eax, [esp + 0x84]
mov dword [esp], eax
sub ebx, ebp
mov edx, ebx
neg ebx
sar ebx, 0x1f
and ebx, ebp
add ebx, edi
mov dword [esp + 4], ebx
sub esi, ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], edx
call fcn.004b6e20
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x54]
mov ebp, edx
jmp 0x87a6d3
mov ecx, ebp
lea ebp, [ebx - 0xe]
xchg ebp, eax
cmp al, 1
xchg ebp, eax
ja 0x87a85a
mov ebp, ecx
jmp 0x87a6c4
lea ebp, [ebx - 0x16]
xchg ebp, eax
cmp al, 1
xchg ebp, eax
ja 0x87a86b
mov ebp, ecx
jmp 0x87a6c4
mov ebp, ecx
jmp 0x87a6d3
mov edi, ebp
mov ebx, edx
jmp 0x87a591
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x54]
mov ebx, edx
jmp 0x87a591
cmp bl, 6
je 0x87a7ca
cmp bl, 5
jne 0x87a988
movzx ebp, byte [esp + 0xc1]
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x87a97d
cmp bl, 0xe
je 0x87a8ed
cmp bl, 0x16
je 0x87a8cb
mov ebx, edx
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x54]
mov ebp, edx
mov edx, ebx
jmp 0x87a6ad
lea eax, [esp + 0x84]
mov dword [esp], eax
mov byte [esp + 4], 0x20
call fcn.004b7340
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
jmp 0x87a8b8
mov ebx, dword [esp + 0x30]
cmp edx, ebx
ja 0x87ac0a
mov ebp, dword [esp + 0x28]
cmp edx, ebp
jb 0x87ac01
sub ebx, ebp
mov ecx, ebx
neg ebx
sar ebx, 0x1f
and ebx, ebp
mov esi, dword [esp + 0x54]
add ebx, esi
mov dword [esp], ebx
sub edx, ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
lea ecx, [0xb93622]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 8
call fcn.004b82f0
mov eax, dword [esp + 0x14]
test eax, eax
jl 0x87a967
lea eax, [esp + 0x84]
mov dword [esp], eax
mov byte [esp + 4], 0xa
call fcn.004b7340
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
jmp 0x87a8b8
lea eax, [esp + 0x84]
mov dword [esp], eax
mov byte [esp + 4], 0x20
call fcn.004b7340
jmp 0x87a956
mov ebx, edx
mov edx, dword [esp + 0x28]
jmp 0x87a8ba
lea ebp, [ebx - 0xe]
xchg ebp, eax
cmp al, 1
xchg ebp, eax
jbe 0x87a89c
lea ebp, [ebx - 0x16]
xchg ebp, eax
cmp al, 1
xchg ebp, eax
jbe 0x87a89c
jmp 0x87a97d
mov eax, dword [esp + 0x28]
test eax, eax
je 0x87aa68
movzx edx, byte [esp + 0xc0]
cmp dl, 0x18
je 0x87aa68
cmp dl, 5
jne 0x87aa82
movzx edx, byte [esp + 0xc1]
test dl, dl
je 0x87aa13
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
mov ebx, dword [esi + 0x14]
cmp ecx, eax
jb 0x87aaa4
lea ebp, [esp + 0x84]
mov dword [esp], ebp
sub ebx, eax
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, eax
add edx, ebx
mov dword [esp + 4], edx
sub ecx, eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebp
call fcn.004b6e20
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x84]
mov ebx, dword [esp + 0x8c]
mov eax, dword [esp + 0x90]
cmp eax, ecx
ja 0x87aa9f
mov ebp, dword [esp + 0xbc]
mov dword [esp], ebp
mov ebp, dword [esp + 0xcc]
mov dword [esp + 4], ebp
sub ebx, eax
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, eax
add edx, ebx
mov dword [esp + 8], edx
sub ecx, eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebp
call fcn.0087b4b0
lea edi, [esp + 0xd0]
lea esi, [esp + 0xc0]
call fcn.004612e2
add esp, 0xb8
ret
lea ebx, [edx - 0xe]
cmp bl, 1
jbe 0x87a9cc
add edx, 0xffffffea
cmp dl, 1
jbe 0x87a9cc
jmp 0x87a9d8
call fcn.00460c20
call fcn.00460c20
lea edi, [esp + 0x78]
lea esi, [esp + 0xc0]
call fcn.004612e2
lea edi, [esp + 0x6c]
lea esi, [esp + 0x60]
call fcn.004612e2
lea edi, [esp + 0x98]
xor eax, eax
call fcn.00460de8
lea ecx, [0xb563e0]
mov dword [esp], ecx
lea edx, [esp + 0x78]
mov dword [esp + 4], edx
call fcn.00409290
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], edx
lea ecx, [0xb563e0]
mov dword [esp], ecx
lea ecx, [esp + 0x6c]
mov dword [esp + 4], ecx
call fcn.00409290
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], edx
mov ecx, dword [esp + 0x54]
mov dword [esp], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 8], ecx
call fcn.00409500
mov ecx, dword [esp + 0xc]
lea edx, [0xa7cc80]
mov dword [esp + 0xa8], edx
mov dword [esp + 0xac], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
call fcn.00409500
mov ecx, dword [esp + 0xc]
lea edx, [0xa7cc80]
mov dword [esp + 0xb0], edx
mov dword [esp + 0xb4], ecx
lea ecx, [0xbb121d]
mov dword [esp], ecx
mov dword [esp + 4], 0x25
lea ecx, [esp + 0x98]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 4
mov dword [esp + 0x10], 4
call fcn.004eeb30
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.00409480
mov ecx, dword [esp + 8]
lea edx, [0xaa9660]
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.00433120
mov eax, ebp
mov ecx, esi
call fcn.00460c20
mov ecx, esi
mov edx, ebx
call fcn.00460c00
mov eax, ebp
mov ecx, edx
call fcn.00460c20
mov ecx, edx
mov edx, ebx
call fcn.00460c00
mov eax, ebp
call fcn.00460c20
mov eax, ecx
mov ecx, esi
call fcn.00460bc0
mov eax, ebx
mov ecx, esi
call fcn.00460bc0
mov eax, edi
mov ecx, edx
call fcn.00460c20
nop
call fcn.0045f5f0
jmp fcn.0087a4f0