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

Disassembly:
push ebp
mov ebp, eax
push edi
push esi
push ebx
sub esp, 0x13c
mov edi, dword [esp + 0x150]
mov dword [esp + 0x44], eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x154]
mov word [esp + 0x42], dx
mov dword [esp + 0x4c], edi
mov edi, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 0x3c], edi
movzx ebx, word [eax]
lea esi, [esi]
nop
cmp bx, 0x239
ja 0x6663cd4b
movzx eax, bx
movzx edx, word [esp + 0x42]
movzx ecx, word [eax + eax + 0x6668cf00]
movzx ebx, dx
lea esi, [ecx + ebx]
cmp dx, word [esi + esi + 0x6668d380]
je 0x6663d196
movzx ebx, word [ebx + ebx + 0x6668c5c0]
test bx, bx
jne 0x6663d180
cmp word [ecx + ecx + 0x6668d44a], 0x65
lea ebx, [ecx + 0x65]
jne 0x6663cd43
test dx, dx
jne 0x6663d230
movzx ebx, word [eax + eax + 0x6668c740]
cmp bx, 0x4c9
jbe 0x6663d1b0
movzx eax, bx
mov esi, dword [ebp]
lea ebx, [eax - 0x4ca]
movzx eax, byte [ebx + 0x6668c100]
mov byte [esp + 0x38], al
test al, al
jne 0x6663cd7d
cmp dword [ebp + 0x4b8], esi
jbe 0x6663d290
cmp ebx, 0x150
ja case.default.0x6663cd89
jmp dword [ebx*4 + 0x66683f20]
movsx eax, byte [esp + 0x38]
movzx edx, word [ebx + ebx + 0x6668c2a0]
lea ecx, [eax + eax*2]
movzx eax, word [esi + ecx*4]
movsx ebx, word [eax + eax + 0x6668cbc0]
movzx eax, dx
add eax, ebx
movzx ebx, word [eax + eax + 0x6668e4c0]
lea eax, [esi + ecx*4 + 0xc]
mov dword [ebp], eax
mov word [eax], bx
mov word [eax + 2], dx
jmp 0x6663ccf0
mov edx, ebx
movzx ebx, dx
lea esi, [ecx + ebx]
cmp dx, word [esi + esi + 0x6668d380]
jne 0x6663cd1b
movzx ebx, word [esi + esi + 0x6668e4c0]
cmp bx, 0x4c9
ja 0x6663cd56
lea esi, [esi]
cmp bx, 0x4c6
jbe 0x6663d240
cmp bx, 0x4c8
je 0x6663d310
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
mov dword [esp + 0xb0], edi
mov dword [esp + 0xe4], edi
mov edi, dword [esp + 0x44]
mov dword [esp + 0xac], eax
mov dword [esp + 0xe0], eax
cmp byte [eax], 0
mov ebx, dword [edi + 4]
jne 0x6663d2f0
mov dword [esp + 4], str.incomplete_input
mov dword [esp], ebx
call fcn.665b3dd0
mov eax, dword [esp + 0x44]
movzx edx, word [esp + 0x58]
lea ecx, [esp + 0xac]
mov dword [eax + 4], ebx
mov eax, ebx
call fcn.66598690
add esp, 0x13c
pop ebx
pop esi
pop edi
pop ebp
ret
movzx ebx, word [ebx + ebx + 0x6668e4c0]
jmp 0x6663cd4b
mov edi, dword [esp + 0x44]
mov eax, dword [edi]
lea edx, [eax + 0xc]
mov dword [edi], edx
cmp edx, dword [edi + 0x4b8]
ja 0x6663d603
movzx edi, word [esp + 0x58]
cmp bx, 0x239
lea edx, [ebx + 0x191]
cmova ebx, edx
mov word [eax + 0xe], di
mov edi, dword [esp + 0x48]
mov word [eax + 0xc], bx
mov dword [eax + 0x10], edi
mov edi, dword [esp + 0x4c]
mov dword [eax + 0x14], edi
add esp, 0x13c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebp, dword [esp + 0x44]
lea ebx, [ebp + 8]
mov edi, dword [ebp + 4]
cmp ebx, esi
jae 0x6663d2c4
mov eax, edi
jmp 0x6663d2ab
mov eax, dword [ebp + 4]
lea edx, [esi - 0xc]
lea ecx, [esi + 4]
mov dword [ebp], edx
movzx edx, word [esi + 2]
call fcn.66598690
mov esi, dword [ebp]
cmp esi, ebx
ja 0x6663d2a8
mov dword [esp + 4], str.parser_stack_overflow
mov dword [esp], edi
call fcn.665b3dd0
mov eax, dword [esp + 0x44]
mov dword [eax + 4], edi
add esp, 0x13c
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [esp + 0xe0]
mov dword [esp + 4], str.near___T_:_syntax_error
mov dword [esp + 8], eax
mov dword [esp], ebx
call fcn.665b3dd0
jmp 0x6663d20a
mov eax, dword [esp + 0x44]
sub dword [eax], 0xc
add esp, 0x13c
pop ebx
pop esi
pop edi
pop ebp
ret
lea ebx, [edi + 8]
mov dword [edi], eax
mov esi, dword [edi + 4]
mov ebp, edi
cmp eax, ebx
jbe 0x6663d636
mov edi, esi
jmp 0x6663d61b
mov edi, dword [ebp + 4]
lea edx, [eax - 0xc]
lea ecx, [eax + 4]
mov dword [ebp], edx
movzx edx, word [eax + 2]
mov eax, edi
call fcn.66598690
mov eax, dword [ebp]
cmp eax, ebx
ja 0x6663d618
mov dword [esp + 4], str.parser_stack_overflow
mov dword [esp], esi
call fcn.665b3dd0
mov eax, dword [esp + 0x44]
mov dword [eax + 4], esi
jmp 0x6663d2db
mov eax, dword [esp + 0x3c]
mov byte [eax + 0xc7], 1
jmp case.default.0x6663cd89
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x12], 0
jne case.default.0x6663cd89
mov edi, dword [eax]
cmp byte [edi + 0x53], 0
mov dword [esp + 0x5c], edi
jne 0x6664139f
mov eax, dword [eax + 0x24]
mov dword [esp + 0x6c], eax
test eax, eax
jne 0x6664139f
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 8]
mov dword [esp + 0x50], eax
test eax, eax
je 0x66642465
mov eax, dword [esp + 0x50]
mov edi, dword [eax + 0x6c]
mov eax, dword [eax + 0x70]
mov dword [esp + 0x68], edi
mov edi, dword [esp + 0x3c]
cmp byte [edi + 0x91], 0
jne 0x66642cfb
cmp dword [esp + 0x68], eax
jge 0x66643084
mov edi, dword [esp + 0x68]
mov ecx, dword [esp + 0x50]
lea eax, [edi + 1]
lea edx, [edi + edi*4]
mov dword [ecx + 0x6c], eax
mov eax, dword [ecx + 0x68]
lea eax, [eax + edx*4]
mov dword [eax], 0x44
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov eax, dword [esp + 0x5c]
cmp byte [eax + 0x53], 0
jne 0x666419f3
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x54]
test edx, edx
jne 0x6663ebe6
mov eax, dword [eax + 0x44]
test eax, eax
je 0x66642f2f
mov eax, dword [esp + 0x50]
mov edi, dword [eax]
mov ecx, dword [eax + 0x6c]
mov eax, 0x666b004c
cmp byte [edi + 0x53], 0
jne 0x6663ec01
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x68]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x5c]
mov edi, dword [eax + 0x14]
test edi, edi
jle 0x6663ecd0
mov dword [esp + 0x68], ebx
mov edi, dword [esp + 0x50]
xor ecx, ecx
jmp 0x6663ec26
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x54]
mov eax, 1
shl eax, cl
test eax, edx
je 0x6663ecbc
mov ebx, ecx
or dword [edi + 0x9c], eax
shl ebx, 4
cmp ecx, 1
je 0x6663ec5a
mov edx, dword [edi]
mov edx, dword [edx + 0x10]
mov edx, dword [edx + ebx + 4]
cmp byte [edx + 9], 0
je 0x6663ec5a
or dword [edi + 0xa0], eax
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x60], ecx
mov edx, dword [edx + 0x10]
mov edx, dword [edx + ebx + 0xc]
mov ebx, dword [edx + 4]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x3c]
mov edx, dword [edx]
mov dword [esp + 4], edx
and eax, dword [ebx + 0x50]
mov edx, 2
setne al
movzx eax, al
mov dword [esp], eax
mov eax, edi
call fcn.665a0980
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
cmp byte [edx + 0xa9], 0
jne 0x6663ecbc
mov eax, dword [edi + 0x6c]
test eax, eax
jle 0x6663ecbc
mov edx, dword [edi + 0x68]
lea eax, [eax + eax*4]
mov ebx, 1
lea eax, [edx + eax*4]
mov word [eax - 0x12], bx
mov eax, dword [esp + 0x5c]
add ecx, 1
cmp ecx, dword [eax + 0x14]
jl 0x6663ec1f
mov ebx, dword [esp + 0x68]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x68], 0
mov eax, dword [eax + 0xcc]
test eax, eax
jle 0x6663ed91
mov dword [esp + 0x60], ebx
mov edi, dword [esp + 0x50]
mov dword [esp + 0x70], esi
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x68]
mov eax, dword [eax + 0xfc]
mov eax, dword [eax + ecx*4]
mov ebx, dword [eax + 0x40]
test ebx, ebx
jne 0x6663ed1f
jmp 0x6663ed23
mov ebx, dword [ebx + 0x18]
test ebx, ebx
je 0x6663ed23
cmp esi, dword [ebx]
jne 0x6663ed18
mov edx, dword [edi + 0x6c]
cmp edx, dword [edi + 0x70]
jge 0x66641fba
mov ecx, dword [edi + 0x68]
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea eax, [edx + edx*4]
lea eax, [ecx + eax*4]
mov dword [eax], 0xa5
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov dword [esp], 0xfffffff4
mov ecx, ebx
mov eax, edi
call fcn.6659aa70
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x68], 1
mov eax, dword [esp + 0x68]
cmp eax, dword [ecx + 0xcc]
jl 0x6663ecfa
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x68], 0
mov dword [eax + 0xcc], 0
mov edi, dword [eax + 8]
mov ecx, edi
mov edi, dword [eax + 0x68]
test edi, edi
jle 0x66642961
mov dword [esp + 0x70], ebx
mov ebx, ecx
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], ebp
jmp 0x6663ee1c
mov eax, dword [ebx + 0x68]
lea ecx, [edi + 1]
mov edx, dword [esp + 0x64]
mov dword [ebx + 0x6c], ecx
lea ecx, [edi + edi*4]
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x60]
mov dword [ecx + 8], edx
mov dword [ecx + 4], eax
mov dword [ecx + 0xc], ebp
mov dword [ecx + 0x10], 0
mov dword [ecx], 0xa4
mov dword [esp], 0xffffffff
mov edx, edi
mov eax, ebx
mov ecx, esi
call fcn.6659aa70
mov edi, dword [esp + 0x3c]
add dword [esp + 0x68], 1
mov eax, dword [esp + 0x68]
cmp eax, dword [edi + 0x68]
jge 0x66642950
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x68]
shl ecx, 4
add ecx, dword [eax + 0x6c]
mov eax, dword [ecx]
mov edi, dword [ecx]
mov edx, dword [ecx + 4]
mov esi, dword [ecx + 0xc]
mov dword [esp + 0x60], eax
movzx ebp, byte [ecx + 8]
mov eax, edi
mov ecx, dword [ecx + 4]
mov edi, dword [ebx + 0x6c]
mov dword [esp + 0x64], edx
cmp edi, dword [ebx + 0x70]
jl 0x6663edc7
mov dword [esp], ecx
mov edx, 0xa4
mov ecx, eax
mov eax, ebx
mov dword [esp + 4], ebp
call fcn.6659fd40
mov edi, eax
jmp 0x6663edf4
mov eax, dword [esp + 0x3c]
mov byte [eax + 0xc7], 2
jmp case.default.0x6663cd89
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0xc]
test edx, edx
jne case.default.0x6663cd89
mov dword [eax + 0xc], 1
jmp case.default.0x6663cd89
mov eax, dword [eax + 0x74]
test eax, eax
je 0x666434a1
mov eax, dword [esp + 0x3c]
call fcn.6659fe10
mov dword [esp + 0x50], eax
test eax, eax
jne 0x6663eb60
mov eax, dword [esp + 0x3c]
mov dword [eax + 0xc], 1
jmp case.default.0x6663cd89
mov dword [esp], 0
mov edx, 0xa5
xor ecx, ecx
mov eax, edi
mov dword [esp + 4], 0
call fcn.6659fd40
mov edx, eax
jmp 0x6663ed60
mov eax, dword [esp + 0x5c]
cmp byte [eax + 0xa9], 0
mov eax, dword [esp + 0x3c]
je 0x666419d3
mov dword [eax + 0xc], 0x65
jmp case.default.0x6663cd89
mov eax, dword [edi + 8]
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x74]
mov ebp, dword [esp + 0x78]
mov ecx, eax
mov eax, dword [esp + 0x3c]
mov edi, dword [eax]
mov eax, dword [eax + 0x70]
mov dword [esp + 0x68], edi
test eax, eax
je 0x66642abf
mov dword [esp + 0x74], esi
mov edi, eax
mov esi, ecx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x78], ebp
jmp 0x66642a4f
mov ecx, dword [esi + 0x68]
lea edx, [eax + 1]
mov dword [esi + 0x6c], edx
lea edx, [eax + eax*4]
lea edx, [ecx + edx*4]
mov dword [edx + 8], ebp
mov dword [edx + 0xc], 0
mov dword [edx + 0x10], 0
mov dword [edx], 0x74
mov dword [edx + 4], 0
mov edx, dword [esi]
cmp byte [edx + 0x53], 0
jne 0x666429e5
test eax, eax
jns 0x666429ca
mov eax, dword [esi + 0x6c]
sub eax, 1
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x68]
mov dword [esp], 0
mov ecx, dword [esp + 0x60]
lea edx, [eax + edx*4]
mov eax, esi
call fcn.6659ab00
mov ecx, 0x66689540
mov edx, 0xc
mov eax, esi
call fcn.665992b0
test eax, eax
je 0x66642ab3
lea edx, [ebx + 2]
mov dword [eax + 0x40], ebp
lea ecx, [ebx + 1]
mov ebp, 0x10
mov dword [eax + 0xc], edx
mov dword [eax + 0x94], edx
mov dword [eax + 8], ebx
mov dword [eax + 0x34], ebx
mov dword [eax + 0x48], ebx
mov word [eax + 0x3e], bp
mov dword [eax + 0x58], ecx
mov dword [eax + 0x70], ebx
mov dword [eax + 0x7c], ebx
mov dword [eax + 0x90], ebx
mov dword [eax + 0xd0], ebx
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x28]
test edx, edx
jne 0x66642a49
mov dword [eax + 0x28], 1
mov edi, dword [edi]
test edi, edi
je 0x66642ab3
mov ecx, dword [edi + 8]
mov edx, dword [esp + 0x68]
mov ebx, dword [edi + 0xc]
mov dword [esp + 4], 0x61
mov eax, ecx
shl eax, 4
add eax, dword [edx + 0x10]
lea ebp, [ebx - 1]
xor edx, edx
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x48]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
call fcn.665b4280
mov eax, dword [edi + 4]
mov eax, dword [eax]
mov dword [esp + 0x60], eax
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x70]
jl 0x6664298b
mov dword [esp], ebp
xor ecx, ecx
mov edx, 0x74
mov eax, esi
mov dword [esp + 4], 0
call fcn.6659fd40
jmp 0x666429b8
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x74]
mov ebp, dword [esp + 0x78]
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x44]
mov dword [esp + 0x68], eax
test eax, eax
je 0x66642b53
mov eax, dword [esp + 0x3c]
mov byte [eax + 0x17], 0
mov eax, dword [esp + 0x68]
mov ecx, dword [eax]
test ecx, ecx
jle 0x66642b53
add eax, 4
mov dword [esp + 0x70], ebx
mov dword [esp + 0x60], eax
mov edi, dword [esp + 0x60]
mov ebx, dword [edi + 0x10]
test ebx, ebx
jle 0x66642b39
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 8]
test edx, edx
je 0x66642b39
mov edi, dword [edi]
mov ecx, ebx
mov edx, edi
call fcn.6660ea60
mov ecx, eax
cmp ebx, eax
je 0x66642b39
mov eax, dword [esp + 0x3c]
xor edx, edx
test byte [edi + 6], 0x20
sete dl
mov eax, dword [eax + 8]
mov dword [esp + 4], 0
add edx, 0x4d
mov dword [esp], ebx
call fcn.6659fdb0
mov edi, dword [esp + 0x68]
add dword [esp + 0x6c], 1
add dword [esp + 0x60], 0x14
mov eax, dword [esp + 0x6c]
cmp eax, dword [edi]
jl 0x66642aef
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x91], 0
jne 0x66642ee2
mov eax, dword [esp + 0x50]
mov edx, 1
call fcn.665a07c0
mov eax, dword [esp + 0x3c]
mov edi, dword [eax + 0x24]
test edi, edi
jne 0x666419f3
mov eax, dword [esp + 0x5c]
cmp byte [eax + 0x53], 0
jne 0x666419f3
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x50]
mov edx, edi
call fcn.665a5860
mov dword [edi + 0xc], 0x65
jmp case.default.0x6663cd89
mov edi, dword [esp + 0x3c]
mov edi, dword [edi + 0x80]
mov dword [esp + 0x60], edi
mov ecx, dword [edi + 0x5c]
cmp dword [esp + 0x68], eax
jge 0x66643939
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x50]
lea edi, [eax + 1]
lea eax, [eax + eax*4]
mov dword [edx + 0x6c], edi
mov edx, dword [edx + 0x68]
lea eax, [edx + eax*4]
mov dword [eax + 4], ecx
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0x25
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + 0x64]
mov eax, dword [eax + 0x60]
test eax, eax
mov dword [esp + 0x70], ecx
mov eax, 0
jle 0x66642d9d
mov dword [esp + 0x74], ebx
mov ebx, eax
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x70]
mov ecx, dword [eax + 0x5c]
lea eax, [ebx + edx]
mov dword [esp], ebx
mov edx, 0x5a
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
add ebx, 1
call fcn.6659fdb0
mov eax, dword [esp + 0x60]
cmp ebx, dword [eax + 0x60]
jl 0x66642d68
mov eax, ebx
mov ebx, dword [esp + 0x74]
mov dword [esp], eax
mov ecx, dword [esp + 0x70]
mov edx, 0x51
mov dword [esp + 4], 0
mov eax, dword [esp + 0x50]
call fcn.6659fdb0
mov ecx, dword [esp + 0x60]
mov edx, 5
mov ecx, dword [ecx + 0x5c]
mov dword [esp], edi
mov dword [esp + 4], 0
mov edi, dword [esp + 0x50]
mov eax, edi
call fcn.6659fdb0
mov ecx, dword [esp + 0x68]
mov edx, dword [edi + 0x6c]
test ecx, ecx
lea eax, [edx - 1]
cmovns eax, ecx
mov ecx, dword [edi]
cmp byte [ecx + 0x53], 0
mov dword [esp + 0x68], eax
mov eax, 0x666b004c
jne 0x66642e09
mov eax, dword [esp + 0x68]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x50]
mov dword [esp + 0x68], edx
mov eax, dword [eax + 0x70]
jmp 0x6663eb7f
mov eax, dword [esp + 0x3c]
mov edx, 0x65
mov eax, dword [eax + 0x80]
mov ecx, dword [eax + 0x5c]
mov dword [esp + 4], 0
mov eax, dword [eax + 0x60]
mov dword [esp], eax
mov eax, dword [esp + 0x50]
call fcn.6659fdb0
jmp 0x66642b64
mov eax, dword [esp + 0x3c]
cmp dword [eax + 0x24], 0
jne 0x666419f3
jmp 0x66642b8f
mov dword [esp + 4], 0
mov eax, dword [esp + 0x50]
xor ecx, ecx
mov edx, 0x44
mov dword [esp], 0
call fcn.6659fd40
jmp 0x6663ebc2
mov eax, dword [esp + 0x5c]
test byte [eax + 0x4c], 8
jne 0x666419de
mov eax, dword [esp + 0x3c]
mov byte [eax + 0x17], 1
jmp 0x666419de
mov dword [esp], 0
mov eax, dword [esp + 0x50]
mov edx, 0x25
mov dword [esp + 4], 0
call fcn.6659fd40
mov dword [esp + 0x68], eax
lea edi, [eax + 1]
jmp 0x66642d4b